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 Functionque 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




