Visual Basic - Error 3061

Life is soft - evento anual de software empresarial
   
Vista:

Error 3061

Publicado por Bladimr (6 intervenciones) el 14/01/2008 00:18:56
Hola. Tengo una tabla llamada Reportes la cual tiene varios campos. Al realizar una consulta SQL me da un mensaje de error: 3061 en tiempo de ejecución. Pocos parametros se esperaba 1. El codigo es le siguiente

Set WS = DBEngine.Workspaces(0)
Set db = WS.OpenDatabase("C:/Cardiobeta/Pacientes.mdb")
Set rs = db.OpenRecordset("Reportes", dbOpenSnapshot)

If Tipo.Text = "Consultas de Primera" Then x = "Primera Consulta"
If Tipo.Text = "Consultas Sucesivas" Then x = "Sucesivas"
If Tipo.Text = "Todas" Then x = "Primera Sucesiva"

Consulta = "SELECT 'CI[dbLong]', '[Apellidos y Nombres][dbText]', 'Tipo.Text As Tipo[dbText]', 'Financiamiento[dbText]', 'Monto[dbText]' FROM Reportes WHERE x IS NOT NULL"
Set rs = db.OpenRecordset(Consulta)

Aqui aparece el error. Esta consulta debe vaciarse en un MSFlexGrid.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error 3061

Publicado por Llaverin (70 intervenciones) el 14/01/2008 09:48:24
Hola Bladimr:
No entiendo porque pones comillas simples a los campos, por ejemplo:
'Cl[dbLong]'

Has probado a poner un Msgbox de Consulta, empieza por ahi.

Ya me comentaras que es lo que te ha salido.

Saludos
Ana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error 3061

Publicado por Bladimr (6 intervenciones) el 15/01/2008 00:42:16
Ya hice las correcciones y el problema persiste. Tipo.Text hace referencia a un ListBox. En relacion a la X es fue declarada con variant. Aqui va nuevamente el codigo, el cual se activa al hace click en un command1.

Dim db As Database
Dim rs As Recordset
Dim WS As Workspace
Dim TD As TableDef
Dim FD As Field
Dim Buscado As String
Dim Consulta As String, i As Variant, x As Variant
Set WS = DBEngine.Workspaces(0)
Set db = WS.OpenDatabase("C:/Cardiobeta/Pacientes.mdb")
Set rs = db.OpenRecordset("Reportes", dbOpenSnapshot)

If Tipo.Text = "Consultas de Primera" Then x = "Primera Consulta"
If Tipo.Text = "Consultas Sucesivas" Then x = "Sucesivas"
If Tipo.Text = "Todas" Then x = "Primera Sucesiva"

Consulta = "SELECT CI, [Apellidos y Nombres], Tipo.Text As Tipo, Financiamiento, Monto FROM Reportes WHERE x IS NOT NULL"
Set rs = db.OpenRecordset(Consulta)

MSFlexGrid1.cols = 5
MSFlexGrid1.TextMatrix(0, 0) = "CI"
MSFlexGrid1.TextMatrix(0, 1) = "Apellidos y Nombres"
MSFlexGrid1.TextMatrix(0, 2) = "Tipo"
MSFlexGrid1.TextMatrix(0, 3) = "Financiamiento"
MSFlexGrid1.TextMatrix(0, 4) = "Monto"

rs.MoveFirst

Do While Not rs.EOF = True
i = i + 1
MSFlexGrid1.TextMatrix(i, 0) = rs("CI")
MSFlexGrid1.TextMatrix(i, 1) = rs("Apellidos y Nombres")
MSFlexGrid1.TextMatrix(i, 2) = rs(x)
MSFlexGrid1.TextMatrix(i, 3) = rs("Financiamiento")
MSFlexGrid1.TextMatrix(i, 4) = rs("Monto")
rs.MoveNext
MSFlexGrid1.AddItem ""


Loop
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error 3061

Publicado por Llaverin (70 intervenciones) el 15/01/2008 09:56:41
Hola de nuevo, Bladimr:
Si Tipo.Text hace referencia a un ListBox, que hace en la definicion de los campos de la tabla??????

La estructura de un Select es la siguiente, a lo mejor estoy equivocada, pero creo que deberias utilizar esta estructura:
Select NombresCamposTablas From NombreTabla Where Condiciones

Creo que deberias ordenar el select y a apartir de ahi, empezar a funcionar.

Prueba a ponerlo bien, y luego me comentas.

Saludos
Ana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar