Consulta en Access!
Hola, que tal espero te encuentres bien, saludos.
Podrías apoyarme en mi siguiente problema: tengo una base de datos, en el cual tengo un formulario donde no apunto a ninguna tabla, lo que quiero hacer es mediante programación de visual basic, pueda modificar un registro que solicite (valida si existe en la tabla), pero de que forma puedo hacer que al momento que me muestre los valores pueda hacer cambios y guardar los cambios que haya realizado, tengo la siguiente rutina:
Option Compare Database
Private Sub Bbfolio_AfterUpdate()
If IsNull(Bbfolio.Value) Or Bbfolio = 0 Then
MsgBox "Debe ingresar un número de folio", vbExclamation, "FOLIO NO VALIDO"
Bficha.SetFocus
Bbfolio = ""
Bbfolio.SetFocus
Else
Dim Dbs As Database
Dim Tab1 As Recordset
Dim Bfolio As Integer
Dim X As Integer
Bfolio = Bbfolio.Text
Set Dbs = CurrentDb
Set Tab1 = Dbs.OpenRecordset("Contratos", dbOpenDynaset)
X = 0
If Tab1.EOF Then
X = 0
Else
Tab1.MoveFirst
Do Until Tab1.EOF
Tab1.Edit
If Tab1.Fields("Folio") = Bfolio Then
Tab1.Fields("Bloqueo") = False
Me!Bfecharecepcion = Tab1.Fields("FechaRecepcion")
Me!Bfechadocto = Tab1.Fields("FechaDocto")
Me!Bnumerodocto = Tab1.Fields("NumeroDocto")
Me!Bficha = Tab1.Fields("Ficha")
Me!Bnombre = Tab1.Fields("Nombre")
Me!Bcantservicios = Tab1.Fields("CantServicios")
Me!Bdependencia = Tab1.Fields("Dependencia")
Me!Bregimencontractual = Tab1.Fields("RegimenContractual")
Me!Btipomovimiento = Tab1.Fields("TipoMovimiento")
Me!Bfecha1 = Tab1.Fields("Fecha_Inicio_Modulo")
Me!Bhora1 = Tab1.Fields("Hora_Inicio_Modulo")
Me!Bfecha2 = Tab1.Fields("Fecha_Termino_Modulo")
Me!Bhora2 = Tab1.Fields("Hora_Termino_Modulo")
Me!bfecha3 = Tab1.Fields("Fecha_Inicio_Contratos")
Me!bhora3 = Tab1.Fields("Hora_Inicio_Contratos")
Me!Bfecha4 = Tab1.Fields("Fecha_Termino_Contratos")
Me!Bhora4 = Tab1.Fields("Hora_Termino_Contratos")
Me!Bfecha5 = Tab1.Fields("Fecha_Termino_Nomina")
Me!Bhora5 = Tab1.Fields("Hora_Termino_Nomina")
Bbfolio.SetFocus
Bfecharecepcion.SetFocus
Bbfolio.Enabled = False
X = 1
End If
Tab1.MoveNext
Loop
End If
If X = 0 Then
MsgBox "El folio solicitado no existe en la base de datos", vbExclamation, "FOLIO NO VALIDO"
Bfechadocto.SetFocus
End If
End If
'Call Comando85_Click
End Sub
Private Sub forma()
Tab1.Update
Tab1.Clone
Dbs.Close
End Sub
Private Sub Bbfolio_GotFocus()
Bbfolio.Requery
End Sub
Private Sub Comando84_Click()
DoCmd.Close
End Sub
Private Sub Comando85_Click()
MsgBox "Desea actualizar los datos de este número de folio", vbYesNo, "GUARDAR CAMBIOS"
If vbYesNo = yes Then
Call forma
Else
Tab1.Clone
Dbs.Close
End If
End Sub
Espero me haya explicado y puedas apoyarme, gracias y saludos nuevamente.
Atentamente,
Rogelio Velázquez Fernández
email: [email protected]
Podrías apoyarme en mi siguiente problema: tengo una base de datos, en el cual tengo un formulario donde no apunto a ninguna tabla, lo que quiero hacer es mediante programación de visual basic, pueda modificar un registro que solicite (valida si existe en la tabla), pero de que forma puedo hacer que al momento que me muestre los valores pueda hacer cambios y guardar los cambios que haya realizado, tengo la siguiente rutina:
Option Compare Database
Private Sub Bbfolio_AfterUpdate()
If IsNull(Bbfolio.Value) Or Bbfolio = 0 Then
MsgBox "Debe ingresar un número de folio", vbExclamation, "FOLIO NO VALIDO"
Bficha.SetFocus
Bbfolio = ""
Bbfolio.SetFocus
Else
Dim Dbs As Database
Dim Tab1 As Recordset
Dim Bfolio As Integer
Dim X As Integer
Bfolio = Bbfolio.Text
Set Dbs = CurrentDb
Set Tab1 = Dbs.OpenRecordset("Contratos", dbOpenDynaset)
X = 0
If Tab1.EOF Then
X = 0
Else
Tab1.MoveFirst
Do Until Tab1.EOF
Tab1.Edit
If Tab1.Fields("Folio") = Bfolio Then
Tab1.Fields("Bloqueo") = False
Me!Bfecharecepcion = Tab1.Fields("FechaRecepcion")
Me!Bfechadocto = Tab1.Fields("FechaDocto")
Me!Bnumerodocto = Tab1.Fields("NumeroDocto")
Me!Bficha = Tab1.Fields("Ficha")
Me!Bnombre = Tab1.Fields("Nombre")
Me!Bcantservicios = Tab1.Fields("CantServicios")
Me!Bdependencia = Tab1.Fields("Dependencia")
Me!Bregimencontractual = Tab1.Fields("RegimenContractual")
Me!Btipomovimiento = Tab1.Fields("TipoMovimiento")
Me!Bfecha1 = Tab1.Fields("Fecha_Inicio_Modulo")
Me!Bhora1 = Tab1.Fields("Hora_Inicio_Modulo")
Me!Bfecha2 = Tab1.Fields("Fecha_Termino_Modulo")
Me!Bhora2 = Tab1.Fields("Hora_Termino_Modulo")
Me!bfecha3 = Tab1.Fields("Fecha_Inicio_Contratos")
Me!bhora3 = Tab1.Fields("Hora_Inicio_Contratos")
Me!Bfecha4 = Tab1.Fields("Fecha_Termino_Contratos")
Me!Bhora4 = Tab1.Fields("Hora_Termino_Contratos")
Me!Bfecha5 = Tab1.Fields("Fecha_Termino_Nomina")
Me!Bhora5 = Tab1.Fields("Hora_Termino_Nomina")
Bbfolio.SetFocus
Bfecharecepcion.SetFocus
Bbfolio.Enabled = False
X = 1
End If
Tab1.MoveNext
Loop
End If
If X = 0 Then
MsgBox "El folio solicitado no existe en la base de datos", vbExclamation, "FOLIO NO VALIDO"
Bfechadocto.SetFocus
End If
End If
'Call Comando85_Click
End Sub
Private Sub forma()
Tab1.Update
Tab1.Clone
Dbs.Close
End Sub
Private Sub Bbfolio_GotFocus()
Bbfolio.Requery
End Sub
Private Sub Comando84_Click()
DoCmd.Close
End Sub
Private Sub Comando85_Click()
MsgBox "Desea actualizar los datos de este número de folio", vbYesNo, "GUARDAR CAMBIOS"
If vbYesNo = yes Then
Call forma
Else
Tab1.Clone
Dbs.Close
End If
End Sub
Espero me haya explicado y puedas apoyarme, gracias y saludos nuevamente.
Atentamente,
Rogelio Velázquez Fernández
email: [email protected]
Respuesta de alejandrozb
1