Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/08/2008, 01:47
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Respuesta: Dar de alta un cliente

Hola, muy buenas

lo que no entiendo en ése código es porqué abres dos veces la misma conexión, lo normal sería hacer la conexión al abrir el programa y cerrarla al salir (declarando la variable como pública) y así te serviría para todos los módulos de la aplicación.

En cuanto a la estructuración del código.. bueno, yo lo haría así:

Código:
' primero comprobamos los datos de los TextBox
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then
    MsgBox "Es obligatorio rellenar los 3 primeros campos"
    ' salimos del procedimiento
    Exit Sub
End If
If Text4.Text = "" Then Text4.Text = 0
If Text5.Text = "" Then Text5.Text = "Sin Correo Electrónico"
' ahora abrimos la conexión (ver mi nota de arriba)
Set conexion = New ADODB.Connection
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\bd1.mdb;Persist Security Info=False"
' y un recordset con el nombre del cliente
Set record = New ADODB.Recordset
record.CursorLocation = adUseClient ' obligatorio para la propiedad RecordCount
sql = "SELECT nombre FROM clientes WHERE nombre = '" & Text1.Text & "'"
record.Open sql, conexion
' si la consulta arroja algún registro, es que el cliente ya existe
If record.RecordCount > 0 Then
    MsgBox "El Cliente ya está Registrado", , "Atención"
    ' cerramos la conexión y salimos del procedimiento
    conexion.Close
    Exit Sub
End If
' grabamos los datos en la tabla
sql = "INSERT INTO clientes VALUES ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')"
conexion.Execute sql
conexion.Close
MsgBox "Cliente Registrado"