Error 3061 que habla de pocos parámetros

Quiero pedirle el favor de que si me ayudas con lo siguiente, deseo enumerar dentro de un informe un campo de texto que resulte de el numero de registros que se tenga en una consulta, para ello tengo el siguiente código en vba:

Dim cont As Integer
Dim r As DAO.Recordset
cont = 0
Set r = CurrentDb.OpenRecordset("SELECT * FROM Puestos_ConsultaOrigen_1001_1002_y_1102")
Do While Not r.EOF
cont = cont + 1
r.MoveNext
Loop
Me.Texto398.Value = cont

pero me aparece el incomodo error 361 de vba que dice que hay pocos parámetros, se esperaba 1 , me señala la linea de código que tienen el Sql y que esta resaltada con negrilla, vale mencionar que Puestos_ConsultaOrigen_1001_1002_y_1102 es una subconsulta que incluye una condición [Forms]![Consultas]![Cuadro_combinado4], lo digo por que quizás ese sea el problema.

3

3 respuestas

Respuesta
1

Te falta determinar que campos incluirá la consulta, te copio unos ejemplos.

SQLSaldosPorServicio = "SELECT CreNum,ID, Sum(Monto) AS TotalMonto FROM **InventarioCargos" & _ " WHERE CreNum=" & Me.CreNum & " AND PlanFecha<=#" & Me.FechaPago & _ "# GROUP BY CreNum,ID;"

**InventariosCargos es una consulta independiente.

**Resalto que para comodidad yo uso "_" para continuar el código en una nueva linea.

Aquí otro ejemplo:

miSQL1 = "SELECT * FROM Cargos2 WHERE NumCre=" & Me.CreNum & "And TipoCobro =0"

Fijate que puse el " * " para seleccionar todos los campos.

Muchas gracias pero mira otra solución mas cómoda:

coloque
un cuadro de texto en la sección que desea enumerar, luego en el origen de
datos escriba lo siguiente: =1
Luego
en la propiedad suma continua establezca en Sobre el Grupo o Sobre Todo.
esto hará que registro a registro vaya contabilizándose como 1, 2, 3 etc, ya
sea por grupo o por todo.

Respuesta
1

Si lo que desea es enumerar los registros en un informe, no es necesario hacer tanta parafernalia, coloque un cuadro de texto en la sección que desea enumerar, luego en el origen de datos escriba lo siguiente: =1

Luego en la propiedad suma continua establezca en Sobre el Grupo o Sobre Todo. Esto hará que registro a registro vaya contabilizándose como 1, 2, 3 etc, ya sea por grupo o por todo.

Imagen de como se hace: Clic aquí

Espero que esto solucione tu problema. Atentamente. Miguel Sandoval.

Respuesta

Quiero pedir el favor si me pueden ayudar, al ejecutar la instrucción OpenRecordset me manda el error 3061, mi programita es el siguiente:

Dim rst2 As DAO.Recordset, _

strSQL2 As String, _
wsNopago As String
If cmbNoPago.Value <> "" Then
    ' creo un recordset vacío con la tabla BD_TELMEX para extraer sus campos
    wsNopago = cmbNoPago.Value
    strSQL2 = "SELECT Codigo_No_Pago FROM Cat_Grupos_No_Pago " & _
                      " WHERE Mid(Codigo_No_Pago,1,1) = " & _

                      "(Select Cve_GPO From CODIGOS_NO_PAGO where mid(Codigo_no_Pago,1,3) = '" &                         Mid(wsNopago, 1, 3) & "');"

    Set rst2 = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset) <<< AQUI ES DONDE MARACA EL ERROR

    Do While Not rst2.EOF
          cmbGpo_No_Pago.Value = rst2!Codigo_No_Pago
          rst2.MoveNext 
    Loop

    If Not rst2 Is Nothing Then
        rst2.Close
        Set rst2 = Nothing 
    End If
End If

Si consulto que trae strSQL2 y lo ejecuto en Access, si me despliega bien la información. Por su atención les doy las gracias por anticipado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas