Hacer un insert en un dbcombo

Espero que me puedas ayudar en esto:
Si tengo un dbcombo que me carga los nombres de las obras sociales pero quiero que si no figura una obrasocial se pueda agregar y quede en la base de datos para luego cuando se vuelve a cargar el form ya quede la nueva obra social.

1 respuesta

Respuesta
1
A ver si te entiendo, quieres que no se cargue un dato cualquiera en tu dbcombo, lo que debes hacer es cuando crees tu consulta SQL a ejecutar agregues en el WHERE que el dato dado no se cargue.
Si lo que quieres qes que cuando tu ingresas un nuevo valor a tu BD y si a la vez haz cargado dos forms y en el primero ingresas un valor y el segundo no lo visializa hasta que tu lo cierres y lo vuelvas a cargar, allí tendas que hacer en el evento change del bdcombo una recarga de los datos el código es igual al que utilizas en el form_load para el dbcbo, ojala te haya servido de ayuda.
Utilizo esta función para cargar el combo llamándola desde el Form Load:
Public Function obrasocial()
Set rst = New ADODB.Recordset
rst.Open "SELECT nombre FROM obrasocial", con, adOpenStatic, adLockOptimistic
Set DataCombo2.RowSource = rst
DataCombo2.ListField = "nombre"
Set rst = Nothing
End Function
Luego si en la lista de nombres se quiere agregar un nuevo nombre
Private Sub DataCombo2_Click(Area As Integer)
If DataCombo2.Text = "Nueva" Then
agregosocial
Else
obrasocial
End If
End Sub
Public Function agregosocial()
Dim rst As ADODB.Recordset
Dim nom As String
nom = InputBox("Ingrese la Nueva Obra Social", "Nueva Obra Social")
If nom <> "" Then
Set rst = New ADODB.Recordset
rst.Open "SELECT nombre FROM obrasocial where nombre =" & nom, con, adOpenStatic, adLockOptimistic
If rst.EOF Then
rst.AddNew
rst!nombre = "nom"
Else
MsgBox "El nombre de la obra social ya existe", vbExclamation, "Aviso de Repetición"
End If
rst.Update
End If
obrasocial
End Function
Pero esta funcion me da un error en la linea: rst.Open "SELECT nombre FROM obrasocial where nombre =" & nom, con, adOpenStatic, adLockOptimistic
Cometes un error:
Private Sub DataCombo2_Click(Area As Integer)
If DataCombo2.Text = "Nueva" Then
agregosocial
Else
obrasocial
End If
End Sub
Si te das cuenta aquí tu defines si es nueva o no la obra social, eso quiere decir que esta demás que hagas una búsqueda para qver si existe sino que de frente debes insertarlo a la base de datos.
Ademas me parece que debería ser:
"SELECT nombre FROM obrasocial where nombre =" & nom
sin el , nom, ojala te sirva y disculpa la demora

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas