Ayuda con un prog de ABM
Hola amigo, soy de Argentina!
Y quisiera saber si me pueden dar una mano estoy haciendo una aplicacion en visual basic en el cual el componente que uso para enlazar mi base de datos es el Control DATA, el problema que tengo es el siguiente, cuando agrego un registro me diga que si ya agregue ese registro o si existe, y que me permita guardarlo y que cuando lo guarde me quede todo bloqueado, asi de esa manera si despues lo quiero modificar no me tire error.
Aqui les envio la estructura de mi sistema, si alguien me quiere ayudar a mejorarlo se los agradeceria.
Private Sub btnAgregar_Click()
Data1.Recordset.AddNew
txtApellidoNombre.Enabled = True
txtLegajo.Enabled = True
txtDireccion.Enabled = True
txtTelefono.Enabled = True
txtSueldoNeto.Enabled = True
End Sub
Private Sub btnAnterior_Click()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
MsgBox "A llegado al Primer Registro !!!!", vbInformation + vbDefaultButton1 + vbDefaultButton2
End If
End Sub
Private Sub btnBuscarRegistro_Click()
Dim Buscado As String, Criterio As String
Buscado = InputBox("Que Nombre Deseas Consultar?")
Criterio = "APENOMB Like '*" & Buscado & "*'"
Data1.Recordset.FindFirst Criterio
If Data1.Recordset.NoMatch Then
MsgBox ("Nombre No Localizado")
Data1.Recordset.MoveLast
End If
End Sub
Private Sub btnCerrarAlta_Click()
Unload Form2
End Sub
Private Sub btnGuardar_Click()
Data1.Recordset.Update
MsgBox "el registro se a guardado correctamente", vbInformation + vbDefaultButton1 + vbDefaultButton2
End Sub
Private Sub btnModificar_Click()
Data1.Recordset.Edit
txtApellidoNombre.Enabled = True
txtLegajo.Enabled = True
txtDireccion.Enabled = True
txtTelefono.Enabled = True
txtSueldoNeto.Enabled = True
End Sub
Private Sub BtnPrimero_Click()
Data1.Recordset.MoveFirst
End Sub
Private Sub btnSiguiente_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
MsgBox "a llegado al Ultimo Registro !!!", vbDefaultButton1 + vbDefaultButton2
End If
End Sub
Private Sub BtnUltimo_Click()
Data1.Recordset.MoveLast
End Sub
Private Sub txtEliminar_Click()
Dim r As Integer
On Error GoTo RutinaDeError
r = MsgBox("Este es un mensaje Critico del Sistema" _
& vbClf & "Los efectos de esta acción son IRREVERSIBLES" _
& vbClf & "Desea Eliminar el Presente Registro", 1 + 32 + 0, "Alerta!!!")
If r <> vbOK Then Exit Sub
Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
Exit Sub
RutinaDeError:
r = MsgBox(Error, vbOKOnly, "Se Produjo un Error:")
Data1.UpdateControls
End Sub
Y quisiera saber si me pueden dar una mano estoy haciendo una aplicacion en visual basic en el cual el componente que uso para enlazar mi base de datos es el Control DATA, el problema que tengo es el siguiente, cuando agrego un registro me diga que si ya agregue ese registro o si existe, y que me permita guardarlo y que cuando lo guarde me quede todo bloqueado, asi de esa manera si despues lo quiero modificar no me tire error.
Aqui les envio la estructura de mi sistema, si alguien me quiere ayudar a mejorarlo se los agradeceria.
Private Sub btnAgregar_Click()
Data1.Recordset.AddNew
txtApellidoNombre.Enabled = True
txtLegajo.Enabled = True
txtDireccion.Enabled = True
txtTelefono.Enabled = True
txtSueldoNeto.Enabled = True
End Sub
Private Sub btnAnterior_Click()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
Data1.Recordset.MoveFirst
MsgBox "A llegado al Primer Registro !!!!", vbInformation + vbDefaultButton1 + vbDefaultButton2
End If
End Sub
Private Sub btnBuscarRegistro_Click()
Dim Buscado As String, Criterio As String
Buscado = InputBox("Que Nombre Deseas Consultar?")
Criterio = "APENOMB Like '*" & Buscado & "*'"
Data1.Recordset.FindFirst Criterio
If Data1.Recordset.NoMatch Then
MsgBox ("Nombre No Localizado")
Data1.Recordset.MoveLast
End If
End Sub
Private Sub btnCerrarAlta_Click()
Unload Form2
End Sub
Private Sub btnGuardar_Click()
Data1.Recordset.Update
MsgBox "el registro se a guardado correctamente", vbInformation + vbDefaultButton1 + vbDefaultButton2
End Sub
Private Sub btnModificar_Click()
Data1.Recordset.Edit
txtApellidoNombre.Enabled = True
txtLegajo.Enabled = True
txtDireccion.Enabled = True
txtTelefono.Enabled = True
txtSueldoNeto.Enabled = True
End Sub
Private Sub BtnPrimero_Click()
Data1.Recordset.MoveFirst
End Sub
Private Sub btnSiguiente_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
MsgBox "a llegado al Ultimo Registro !!!", vbDefaultButton1 + vbDefaultButton2
End If
End Sub
Private Sub BtnUltimo_Click()
Data1.Recordset.MoveLast
End Sub
Private Sub txtEliminar_Click()
Dim r As Integer
On Error GoTo RutinaDeError
r = MsgBox("Este es un mensaje Critico del Sistema" _
& vbClf & "Los efectos de esta acción son IRREVERSIBLES" _
& vbClf & "Desea Eliminar el Presente Registro", 1 + 32 + 0, "Alerta!!!")
If r <> vbOK Then Exit Sub
Data1.Recordset.Delete
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
Data1.Recordset.MoveLast
End If
Exit Sub
RutinaDeError:
r = MsgBox(Error, vbOKOnly, "Se Produjo un Error:")
Data1.UpdateControls
End Sub
Hola, yo también soy Argentino, vivo en Santa Fe
Tu gran problema es que hacés transacciones de datos con controles enlazados, eso es más facil de implementar, pero después te da mas problemas que soluciones
Vas a tener que investigar sentencias transaccionales de Ansi SQL
INSERT INTO
SELECT INTO
UPDATE
DELETE
y ejecutarlos con el método Execute del Objeto Database
Uno de los grandes problemas de hacer esto con recordsets y/o controles enlazados, es que no son transacciones controladas, es decir, no se puede volver atrás (RollbackTrans) si , en un conjunto de actualizaciones, una falla.
En síntesis, un peligro
Saludos
Tu gran problema es que hacés transacciones de datos con controles enlazados, eso es más facil de implementar, pero después te da mas problemas que soluciones
Vas a tener que investigar sentencias transaccionales de Ansi SQL
INSERT INTO
SELECT INTO
UPDATE
DELETE
y ejecutarlos con el método Execute del Objeto Database
Uno de los grandes problemas de hacer esto con recordsets y/o controles enlazados, es que no son transacciones controladas, es decir, no se puede volver atrás (RollbackTrans) si , en un conjunto de actualizaciones, una falla.
En síntesis, un peligro
Saludos
