Estoy escribiendo un programa en Vb6 para administrar una base de datos en Access.
Estoy usando ADO y ODBC para la conexión y algunas órdenes SQL (no todas) son ignoradas por Access. Para solucionar éso cambié parte del código para ejecutar consultas almacenadas, pero en un caso necesito usar un Recordset actualizable, y no me permite usar una sentencia de filtrado.
Este es el código (simplificado):
Dim WithEvents adoQamDatosRS As ADODB.Recordset
Dim db As ADODB.Connection
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDASQL;dsn=BD-99-01;uid=admin;pwd=admin;"
Set adoQamDatosRS = New ADODB.Recordset
dFecha = txtFecha(0).Text
sSQL = "SELECT * FROM Tb1_Datos_QAM WHERE Fecha=#" & dFecha &"# ORDER BY Fecha, Hora_Local"
adoQamDatosRS.Open sSQL, db, adOpenStatic, adLockOptimistic
En una BD de prueba con 72 registros (24 por día), esta orden debería devolverme un recordset con 24 registros, pero me devuelve 0 (cero).
Si le quito 'WHERE Fecha=#" & dFecha &"# ', la sentencia funciona y me devuelve los 72 registros.
La sintaxis es correcta, si la ejecuto como una consulta almacenada funciona perfectamente, pero necesito ejecutarla desde código para poder editarla y agregar registros.
Si alguien tiene alguna sugerencia o solución, desde ya muy agradecido.
Saludos
Anthony