Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

variable en sentencia sql

Estas en el tema de variable en sentencia sql en el foro de Visual Basic clásico en Foros del Web. Saludos a la comunidad, Estoy creando código en visual basic para una aplicación hecha en access 97. Tengo creado el siguiente módulo, con el que ...
  #1 (permalink)  
Antiguo 03/06/2009, 01:52
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 5 meses
Puntos: 0
variable en sentencia sql

Saludos a la comunidad,

Estoy creando código en visual basic para una aplicación hecha en access 97.
Tengo creado el siguiente módulo, con el que pretendo lo siguiente: hacer una consulta de registros duplicados en modo sql, en la cual uso como nombre de la tabla una variable string que contiene el nombre de la tabla.
Esta variable está declarada como pública:

Public nomarxiuimportat As String 'es el nombre de la tabla


Function segona_part()

Dim sql As Recordset

Set sql = CurrentDb().OpenRecordset("SELECT DISTINCTROW ['" & nomarxiuimportat & "'].nombre_campo1, ['" & nomarxiuimportat & "'].nombre_campo2 FROM ['" & nomarxiuimportat & "'] WHERE (((['" & nomarxiuimportat & "'].nombre_campo1) In (SELECT [nombre_campo1] FROM ['" & nomarxiuimportat & "'] As Tmp GROUP BY [nombre_campo1] HAVING Count(*)>1 ))) ORDER BY ['" & nomarxiuimportat & "'].nombre_campo1;")

If sql.RecordCount = 0 Then
MsgBox sql.RecordCount
End If

sql.Close
End Function

Cuando ejecuto el código me sale un error que dice que el motor de la base de datos Microsoft Jet no puede encontrar la tabla "xxxxxxx", que es precisamente el valor que tiene la variable.

Alguien puede ayudarme?

Gracias a todos,

Un saludo

Rael74
  #2 (permalink)  
Antiguo 03/06/2009, 09:04
Avatar de rulsanchez  
Fecha de Ingreso: octubre-2008
Ubicación: Manchester
Mensajes: 64
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: variable en sentencia sql

Hola compañer@ Rael74, no se si es porque se te ha olvidado pero no veo en el codigo donde creas esa tabla, deberias poner algo asi para crearla:
Dim Sql as string

Sql = "CREATE TABLE " & NOMBREDETUTABLA& " ("
Sql = Sql & "UNCAMPO nvarchar(50), "
Sql = Sql & "OTROCAMPO nvarchar(50), "
Sql = Sql & ")"
TUCONEXION.Execute Sql, , adExecuteNoRecords

y asi ya tienes creada tu tabla.
Mira a ver si es eso y sino miramos otra cosa.
Saludotes ;)
  #3 (permalink)  
Antiguo 03/06/2009, 10:12
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: variable en sentencia sql

haber prueba con esto:

SELECT *
FROM table1
WHERE
(
SELECT COUNT(*)
FROM table1 As Tmp
where table1.nombre_campo1= Tmp.nombre_campo1
) > 1

donde table1 es tu tabla que tiene los registros repeditos
PD: ya no seria necesario crear tablas temporales
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #4 (permalink)  
Antiguo 04/06/2009, 00:47
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: variable en sentencia sql

Gracias boluart,
Ahora ya funciona con la instrucción que me has facilitado.
Por otro lado, gracias tambien a ti, rulsanchez, por tu interés. Respecto a tu pregunta, te comento que la tabla se crea anteriormente, dentro del mismo módulo, mendiante la instrucción
DoCmd.TransferSpreadsheet.
Gracias de nuevo

Rael74
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.