Formulario continuo con casilla de verificación
Publicado por Mercedes (22 intervenciones) el 30/01/2023 19:08:36
Hola, por favor ayuda para poder resolver mi problema con un formulario continuo y el uso de una casilla de verificación para marcar registros que deben darse de baja.
El formulario en origen del registro tiene asociada una tabla que tiene el campo “Baja” con formato Si/No y Valor Predeterminado No. Los registros marcados son dos registros consecutivos y uno no es consecutivo.
La idea en general es marcar la casilla de verificación de aquellos registros que quiero dar de baja, para ello codifique el evento Clic del botón “Baja” del formulario y la función “ProcesarBaja”:
El problema es que marco 3 casillas de verificación (tres registros), dos de ellas registros continuos y otra no, y en la tabla asociada al formulario existen tres registros marcados, pero en el recordset solo hay 2 registros verificado cuando agregue la variable “a” y la función DCount para saber cuantos registros tenia “MiSql”
Desde ya agradeceré la ayuda que puedan brindarme porque a pesar que he tratado de modificar el procedimiento no logro encontrar donde puede estar el error.
El formulario en origen del registro tiene asociada una tabla que tiene el campo “Baja” con formato Si/No y Valor Predeterminado No. Los registros marcados son dos registros consecutivos y uno no es consecutivo.
La idea en general es marcar la casilla de verificación de aquellos registros que quiero dar de baja, para ello codifique el evento Clic del botón “Baja” del formulario y la función “ProcesarBaja”:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Private Sub cmdbaja_Click()
respuesta = MsgBox("Esta seguro de elimiar este registro", vbYesNo + vbCritical, "Aviso")
If respuesta = vbYes Then
ProcesarBaja
Else
respuesta = MsgBox("Canceló la operacion", vbOKOnly + vbInformation, "Aviso")
End If
End Sub
Private Function ProcesarBaja()
Dim rst As DAO.Recordset
Dim MiSql As String
Dim rs As DAO.Recordset
Dim MiSql2 As String
Dim MiSql3 As String
Dim numero As Integer
Dim a As Byte
MiSql = "SELECT * FROM LogBaseFacturas WHERE Baja = True"
Set rst = CurrentDb.OpenRecordset(MiSql, dbOpenDynaset)
''''Esta línea la puse para que cuente la cantidad de registros que hay en MiSql'''''
a = DCount("*", "LogBaseFacturas", "Baja=True")
‘'''''Antes de proceder a dar de baja los registros copio los mismos a otra tabla que en otro proceso voy a dar de baja pero la preciso de control''''''
MiSql2 = "INSERT INTO [LogBaseFacturas-Bajas] SELECT * FROM (" & MiSql & ")"
CurrentDb.Execute (MiSql2)
If rst.BOF() And rst.EOF Then
Exit Function
End If
rst.MoveFirst
‘Recorre el recordset y elimina los registros marcados
While Not rst.EOF
rst.Delete
rst.MoveNext
Wend
rst.Close
Set rst = Nothing
End Function
El problema es que marco 3 casillas de verificación (tres registros), dos de ellas registros continuos y otra no, y en la tabla asociada al formulario existen tres registros marcados, pero en el recordset solo hay 2 registros verificado cuando agregue la variable “a” y la función DCount para saber cuantos registros tenia “MiSql”
Desde ya agradeceré la ayuda que puedan brindarme porque a pesar que he tratado de modificar el procedimiento no logro encontrar donde puede estar el error.
Valora esta pregunta
0