Sintaxis correcta de una cadena de sql
Tengo este código:
Public Function AlEliminarUnConceptoTPV(FName As Form) Dim rst As DAO.Recordset Dim contador As Integer contador = 1 Set rst = CurrentDb.OpenRecordset("SELECT Posicion, ID FROM T10TPVSubtabla WHERE CodigoTicket = '" & FName.CodigoTicket & "' ORDER BY ID") If rst.RecordCount = 0 Then Exit Function rst.MoveFirst Do Until rst.EOF With rst .Edit !Posicion = contador .Update .MoveNext contador = contador + 1 End With Loop rst.Close Set rst = Nothing End Function
que me gustaría generalizarlo para, con el mismo código, me sirva la misma función para utilizarlo en dos formularios distintos, pues solo varía en el nombre de la tabla y el nombre del código.
Para ello, estoy probando así:
Set rst = CurrentDb.OpenRecordset("SELECT Posicion, ID FROM " & Tabla & " WHERE CodigoPresupuesto = '" & Forms(Formulario).Controls(Codigo) & "' ORDER BY ID")
1. Mi problema viene con "Tabla", que la tengo declarada como string y me da error.
Public Function AlEliminarUnConcepto(FName As Form, Tabla As String, Formulario As String, Codigo As String)
En el formulario, llamo a la función de la siguiente manera:
Call AlEliminarUnConcepto(Me, "T11PresupuestoSubtabla", "F11Presupuesto", "CodigoPresupuesto")
2. ¿Hay alguna otra manera de hacer referencia a un campo del subformulario, u otra manera más sencilla de simplificarlo? Es decir, si utilizo:
Forms(Formulario). Controls(Codigo)
En la llamada que hago desde el formulario, tengo que poner el nombre del formulario principal; porque si no el del subformulario, me da error.
1 respuesta
Respuesta de Sveinbjorn El Rojo
1