Error 3061. Pocos parámetros. Se esperaba 1
Estoy haciendo cambios en la web, y me encuentro con este problema en los desplegables:
Esto es donde falla:
Estoy revisando y haciendo pruebas, pero no doy con el error. He leído que puede ser que el campo no exista, pero he comprado ese campo, y sí existe.
Si hay alguien que me pueda echar un cable, y necesita más información, que me diga.
2 Respuestas
Diego, con lo que muestras es imposible saber qué está fallando, porque no sabemos el valor que toma la variable miRowSce ni en qué línea de código se genera.
Como sugerencia, para esta y otros errores que tengas, es que te acostumbres a usar las herramientas que incorpora el editor de VBA para depurar el código, como la "ejecución paso a paso", que te permite ir ejecutando el código línea a línea y ver si todo va como debe, analizando si las variables que manejas toman los valores correctos o no...(con dejar el cursor encima de ellas te muestra el valor que tengan en ese momento), la ventana inmediato, donde puedes imprimir el valor de las variables que tengan un valor muy largo (como este caso) ...
A lo que voy, si antes de la línea marcada en amarillo pones:
Debug. Print miRowSce
Y abres la ventana inmediato (con Ctrl+G), verás la SQL que crea tu código y verás si te falla algo (como alguna variable que no cogió el valor adecuado...)
- Compartir respuesta
Option Compare Database Public cmbCategoria As New FindAsYouTypeCombo Public cmbCliente As New FindAsYouTypeCombo Public cmbAno As New FindAsYouTypeCombo Public cmbTrimestre As New FindAsYouTypeCombo Private Sub Form_Load() cmbCategoria.InitalizeFilterCombo Me.cc, "Categoría", FromBeginning, True, True cmbCliente.InitalizeFilterCombo Me.apcc, "Cliente", FromBeginning, True, True cmbAno.InitalizeFilterCombo Me.acc, "Año", FromBeginning, True, True cmbTrimestre.InitalizeFilterCombo Me.tcc, "Expr1", FromBeginning, True, True End Sub Private Sub Etiqueta30_Click() Dim MiApro As String Dim MiCategoría As String Dim MiAño As String Dim MiTrimestre As String Dim miFiltro As String Dim MiArgumento As String Dim MisOpciones As String miFiltro = "" 'Inicializamos el filtro If Me.Apro.Value <> 1 Then If IsNull(Me.apcc.Value) Then MsgBox "Debe seleccionar el proveedor", vbCritical, "ERROR" Exit Sub End If MiApro = Me.apcc.Value miFiltro = miFiltro & " AND " & "[Código2]='" & MiApro & "'" End If If Me.Categoría.Value <> 1 Then If IsNull(Me.cc.Value) Then MsgBox "Debe seleccionar la categoría", vbCritical, "ERROR" Exit Sub End If MiCategoría = Me.cc.Value miFiltro = miFiltro & " AND " & "[Código1]='" & MiCategoría & "'" End If If Me.Año.Value <> 1 Then If IsNull(Me.acc.Value) Then MsgBox "Debe seleccionar el año", vbCritical, "ERROR" Exit Sub End If MiAño = Me.acc.Value miFiltro = miFiltro & " AND " & "[Año]='" & MiAño & "'" End If If Me.Trimestre.Value <> 1 Then If IsNull(Me.tcc.Value) Then MsgBox "Debe seleccionar el trimestre", vbCritical, "ERROR" Exit Sub End If MiTrimestre = Me.tcc.Value miFiltro = miFiltro & " AND " & "[Trimestre]='" & MiTrimestre & "'" End If '------------ CAPTION DEL INFORME ----------------------------------------- MiArgumento = " - " If Me.Año.Value = 2 Then MiArgumento = MiArgumento & Me.acc & " " MisOpciones = MisOpciones & "a" End If If Me.Trimestre.Value = 2 Then MiArgumento = MiArgumento & "T" & Me.tcc & " " MisOpciones = MisOpciones & "t" End If If Me.Categoría.Value = 2 Then MiArgumento = MiArgumento & DLookup("Categoría", "01-A Categorías", "[Código de la categoría]='" & Me.cc.Value & "'") & " " MisOpciones = MisOpciones & "c" End If If Me.Apro.Value = 2 Then If Me.Categoría.Value = 2 Then MiArgumento = MiArgumento & "/ " & DLookup("Cliente", "01-B Clientes", "ID_Cliente='" & Me.apcc.Value & "'") & " " Else MiArgumento = MiArgumento & DLookup("Cliente", "01-B Clientes", "ID_Cliente='" & Me.apcc.Value & "'") & " " End If MisOpciones = MisOpciones & "p" End If MiArgumento = MiArgumento & MisOpciones & Len(MisOpciones) '--------------------------------------------------------------------------- If Len(miFiltro) > 0 Then miFiltro = Right(miFiltro, Len(miFiltro) - 4) End If If miFiltro = "" Then DoCmd.OpenReport "04-A Ingresos", acViewPreview Else DoCmd.OpenReport "04-A Ingresos", acViewPreview, , miFiltro, , MiArgumento End If DoCmd.Close acForm, Me.Name End Sub Private Sub Categoría_AfterUpdate() Select Case Me.Categoría.Value Case 1 Me.cc.Visible = False Case 2 Me.cc.Visible = True End Select Me.cc.Value = "" End Sub Private Sub cc_AfterUpdate() Me.apcc.Value = "" Me.apcc.Requery Me.apcc.Visible = False Me.Apro.Value = 1 Me.acc.Value = "" Me.acc.Requery Me.acc.Visible = False Me.Año.Value = 1 Me.tcc.Value = "" Me.tcc.Requery Me.tcc.Visible = False Me.Trimestre.Value = 1 End Sub Private Sub Apro_AfterUpdate() Dim miRowSce As String If Me.Apro = 1 Then Me.apcc.Visible = False Else Me.apcc.Visible = True Me.apcc = Null 'No es necesario, pero si haces pruebas a lo loco agradecerás que te vaya borrando el valor seleccionado. If Me.Categoría = 1 Then miRowSce = "SELECT [02- Diálogo IVA repercutido].Cliente, [02- Diálogo IVA repercutido].ID_Cliente" _ & " FROM [02- Diálogo IVA repercutido]" _ & " GROUP BY [02- Diálogo IVA repercutido].Cliente, [02- Diálogo IVA repercutido].ID_Cliente" Else miRowSce = "SELECT [02- Diálogo IVA repercutido].Cliente, [02- Diálogo IVA repercutido].ID_Cliente, [02- Diálogo IVA repercutido].[Código de la categoría]" _ & " FROM [02- Diálogo IVA repercutido]" _ & " GROUP BY [02- Diálogo IVA repercutido].Cliente, [02- Diálogo IVA repercutido].Id_Cliente," _ & " [02- Diálogo IVA repercutido].[Código de la categoría]" _ & " HAVING ((([02- Diálogo IVA repercutido].[Código de la categoría])=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[value]))" End If End If Me.apcc.RowSource = miRowSce Me.apcc.Requery cmbCliente.RowSource = miRowSce End Sub Private Sub apcc_AfterUpdate() Me.acc.Value = "" Me.acc.Requery Me.acc.Visible = False Me.Año.Value = 1 Me.tcc.Value = "" Me.tcc.Requery Me.tcc.Visible = False Me.Trimestre.Value = 1 End Sub Private Sub Año_AfterUpdate() Dim miRowSce As String If Me.Año = 1 Then Me.acc.Visible = False Else Me.acc.Visible = True Me.acc = Null 'No es necesario, pero si haces pruebas a lo loco agradecerás que te vaya borrando el valor seleccionado. If Me.Categoría = 1 And Me.Apro = 1 Then miRowSce = "SELECT Year([Fecha de la factura]) AS Año " _ & "FROM [01-E Compras] " _ & " GROUP BY Year([Fecha de la factura]);" End If If Me.Categoría = 2 And Me.Apro = 1 Then miRowSce = "SELECT Year([Fecha de la factura]) AS Año, [01-E Compras].Código " _ & "FROM [01-E Compras]" _ & "GROUP BY Year([Fecha de la factura]), [01-E Compras].Código" _ & " HAVING ((([01-E Compras].Código)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[Value]));" End If If Me.Categoría = 1 And Me.Apro = 2 Then miRowSce = "SELECT Year([Fecha de la factura]) AS Año, [01-E Compras].ID_Cliente " _ & "FROM [01-E Compras]" _ & "GROUP BY Year([Fecha de la factura]), [01-E Compras].ID_Cliente" _ & " HAVING ((([01-E Compras].ID_Cliente)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[apcc].[value]));" End If If Me.Categoría = 2 And Me.Apro = 2 Then miRowSce = "SELECT Year([Fecha de la factura]) AS Año, [01-E Compras].ID_Cliente, [01-E Compras].Código " _ & "FROM [01-E Compras]" _ & "GROUP BY Year([Fecha de la factura]), [01-E Compras].ID_Cliente, [01-E Compras].Código" _ & " HAVING ((([01-E Compras].ID_Cliente)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[apcc].[Value]) AND (([01-E Compras].Código)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[Value]));" End If End If Me.acc.RowSource = miRowSce Me.acc.Requery cmbAno.RowSource = miRowSce End Sub Private Sub acc_AfterUpdate() Me.tcc.Value = "" Me.tcc.Requery Me.tcc.Visible = False Me.Trimestre.Value = 1 End Sub Private Sub Trimestre_AfterUpdate() Dim miRowSce As String If Me.Trimestre = 1 Then Me.tcc.Visible = False Else Me.tcc.Visible = True Me.tcc = Null 'No es necesario, pero si haces pruebas a lo loco agradecerás que te vaya borrando el valor seleccionado. If Me.Categoría = 1 And Me.Apro = 1 And Me.Año = 1 Then miRowSce = "SELECT [01-D Trimestres].Trimestre & ' trimeste' AS Expr1," _ & " [01-D Trimestres].[Código del trimestre] FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " GROUP BY [01-D Trimestres].Trimestre & ' trimeste', [01-D Trimestres].[Código del trimestre]" _ & " ORDER BY [01-D Trimestres].[Código del trimestre]" End If If Me.Categoría = 2 And Me.Apro = 1 And Me.Año = 1 Then miRowSce = "SELECT [01-D Trimestres].Trimestre & ' trimeste' AS Expr1," _ & " [01-D Trimestres].[Código del trimestre] FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " WHERE ((([01-E Compras].Código)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[Value]))" _ & " GROUP BY [01-D Trimestres].Trimestre & ' trimeste', [01-D Trimestres].[Código del trimestre]" _ & " ORDER BY [01-D Trimestres].[Código del trimestre]" End If If Me.Categoría = 1 And Me.Apro = 2 And Me.Año = 1 Then miRowSce = "SELECT [01-D Trimestres].Trimestre & ' trimeste' AS Expr1," _ & " [01-D Trimestres].[Código del trimestre] FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " WHERE ((([01-E Compras].ID_Cliente)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[apcc].[Value]))" _ & " GROUP BY [01-D Trimestres].Trimestre & ' trimeste', [01-D Trimestres].[Código del trimestre]" _ & " ORDER BY [01-D Trimestres].[Código del trimestre]" End If If Me.Categoría = 2 And Me.Apro = 2 And Me.Año = 1 Then miRowSce = "SELECT [01-D Trimestres].Trimestre & ' trimeste' AS Expr1," _ & " [01-D Trimestres].[Código del trimestre] FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " WHERE ((([01-E Compras].ID_Cliente)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[apcc].[Value]) AND (([01-E Compras].Código)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[Value]))" _ & " GROUP BY [01-D Trimestres].Trimestre & ' trimeste', [01-D Trimestres].[Código del trimestre]" _ & " ORDER BY [01-D Trimestres].[Código del trimestre]" End If If Me.Categoría = 1 And Me.Apro = 1 And Me.Año = 2 Then miRowSce = "SELECT [02-B Trimestre & Repercutido].Expr1," _ & " [02-B Trimestre & Repercutido].[Código del trimestre], Year([Fecha de la factura]) AS Expr2" _ & " FROM [02-B Trimestre & Repercutido]" _ & " GROUP BY [02-B Trimestre & Repercutido].Expr1, [02-B Trimestre & Repercutido].[Código del trimestre]," _ & " Year([Fecha de la factura])" _ & " HAVING (((Year([Fecha de la factura]))=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[acc].[Value]))" _ & "ORDER BY [02-B Trimestre & Repercutido].[Código del trimestre], Year([Fecha de la factura]);" End If If Me.Categoría = 2 And Me.Apro = 1 And Me.Año = 2 Then miRowSce = "SELECT [01-D Trimestres].[Trimestre] & ' trimeste'" _ & " AS Expr1, [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura]) AS Año" _ & " FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " WHERE ((([01-E Compras].Código)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[Value]))" _ & " GROUP BY [01-D Trimestres].[Trimestre] & ' trimeste'," _ & " [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura])" _ & " HAVING (((Year([Fecha de la factura]))=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[acc].[Value]))" _ & " ORDER BY [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura]);" End If If Me.Categoría = 1 And Me.Apro = 2 And Me.Año = 2 Then miRowSce = "SELECT [01-D Trimestres].[Trimestre] & ' trimeste'" _ & " AS Expr1, [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura]) AS Año" _ & " FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " WHERE ((([01-E Compras].ID_Cliente)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[apcc].[Value]))" _ & " GROUP BY [01-D Trimestres].[Trimestre] & ' trimeste'," _ & " [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura])" _ & " HAVING (((Year([Fecha de la factura]))=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[acc].[Value]))" _ & " ORDER BY [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura]);" End If If Me.Categoría = 2 And Me.Apro = 2 And Me.Año = 2 Then miRowSce = "SELECT [01-D Trimestres].[Trimestre] & ' trimeste'" _ & " AS Expr1, [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura]) AS Año" _ & " FROM [01-D Trimestres] INNER JOIN [01-E Compras]" _ & " ON [01-D Trimestres].[Código del trimestre] = [01-E Compras].Trimestre" _ & " WHERE ((([01-E Compras].ID_Cliente)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[apcc].[Value]) AND (([01-E Compras].Código)=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[cc].[Value]))" _ & " GROUP BY [01-D Trimestres].[Trimestre] & ' trimeste'," _ & " [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura])" _ & " HAVING (((Year([Fecha de la factura]))=[Forms].[03-E Dialogo IVA repercutido (Clientes)].[acc].[Value]))" _ & " ORDER BY [01-D Trimestres].[Código del trimestre], Year([Fecha de la factura]);" End If End If Me.tcc.RowSource = miRowSce Me.tcc.Requery cmbTrimestre.RowSource = miRowSce End Sub
- Compartir respuesta