Hola, necesito ayuda con los ComboBox en mi aplicación
Me alegro encontrarte por acá, te cuento...
Mira, mi aplicación es en Visual6.0 con base de datos en Access2007
La aplicación es para crear una base de datos (BD) de clientes con toda la info personal, laboral y de contacto.
Hasta ahora he seguido tu ayuda y he conseguido hacer un FORM que se comunica con la BD para abrir y guardar datos de cliente sy crear clientes nuevos... (gracias por el código que me facilitaste para conseguir esto). Te recuerdo que soy usuario NOVATO en Visual y trato de aprender lo que más puedo, pero para mí esto aún es chino en varios aspectos. :S
Necesito aprender algunas cosas más acerca de esto, ya que hay items que aún no manejo y me facilitarían la vida en Visual.
Para que quedemos claros, te adjunto el código para que veas como llamo la BD desde el FORM:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\csv.mdb" & ";Persist Security Info=False"
cnn.Open
rs.Open "Select * from db_ventas", cnn, adOpenDynamic, adLockOptimistic
Call Visualizar_Datos
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Los datos los llamo y grabo a la BD por RecordSet y funciona de maravilla...
He agregado a mi FORM algunos COMBOBOX, a los cuáles he conseguido agregar datos por medio del "DataList", en las propiedades del ComboBox.
Ahora, lo que necesito hacer es lo siguiente:
*He creado un segundo FORM para editar exclusivamente los ComboBox (como Form de Administrador por ejemplo), en el cuál he agregado un FRAME que incluye todo lo necesario (a mi parecer) como para editar uno de los ComboBox. Mi idea es hacer varios FRAMES y que cada uno agregue, elimine o actualice opciones de un ComboBox en específico, y que guarde en otra BD los cambios... Esto es para tener separadas las BD de la aplicación y la de los clientes por temas de seguridad (por ejemplo montadas en 2 HDD diferentes por decir algo)... El código que conseguí en la red para esto es el que sigue:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'Connection Confirmation
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\csv_maestro.mdb" & ";Persist Security Info=False"
' Abre la base de datos
cnn.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from mod_dia_pago", cnn, adOpenDynamic, adLockOptimistic
' Muestra los datos en los text
Call Visualizar_Datos
End Sub
'**************************************************
'**************************************************
' Sub que carga los datos del recordset y los asigna al TextBox1 y ComboBox1
Private Sub Visualizar_Datos()
Text1.Text = CLng(rs("Id"))
Combo1.Text = rs("dia_pago")
End Sub
Private Sub CmdExit_Click()
End
End Sub
Private Sub Command1_Click()
' Esto genera el ítem ingresado en el TextBox2
Combo1.AddItem Text2.Text
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Graba los datos en la base de datos csv_maestro (PRUEBA)
'Call Asignar_Datos
'rs.Update
'MsgBox " Registro guardado", vbInformation, "Grabar"
'Frame2.Enabled = True
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Esto borra el contenido del TextBox2 al Click
Text2.Text = ""
End Sub
Private Sub Command2_Click()
' Esto elimina el ítem activo en el ComboBox1
Combo1.RemoveItem Combo1.ListIndex
End Sub
Private Sub Command3_Click()
' Esto borra todos los ítems del ComboBox1
Combo1.clear
End Sub
Private Sub Command4_Click()
'Esto refresca la lista del ComboBox1, no tiene ninguna utilidad en sí en este ComboBox
'pero si se genera la lista en una base de datos, es necesario para que actualice la BD
Combo1.Refresh
End Sub
Private Sub Frame4_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
**Ahora, lo que necesito saber es como hago que este FORM de administración funcione, ya que no hace lo que necesito que haga (lo que aparece en el codigo, algo esta mal y no se que)
***El problema final es que necesito saber como haer que el FORM de los clientes (el primero) me lea los datos de esta segunda BD y siga guardándome los resultados seleccionados en la BD de los clientes...
¿Se entiende algo?
En resumen:
1° Hacer que un ComboBox lea las opciones que muestra de una BD diferente a la inicial.
2° Conseguir crear y modificar las opciones a seleccionar en un ComboBox desde un Form de administración po ejemplo.
3° Lograr que en el FORM de los clientes se lean las opciones de estos ComboBox que están conectados con otra BD para mostrar sus opciones y me guarde los resultados de las selecciones en la BD de clientes.
(Traté de ser lo más claro posible para que entiendas mi problema...)
Mira, mi aplicación es en Visual6.0 con base de datos en Access2007
La aplicación es para crear una base de datos (BD) de clientes con toda la info personal, laboral y de contacto.
Hasta ahora he seguido tu ayuda y he conseguido hacer un FORM que se comunica con la BD para abrir y guardar datos de cliente sy crear clientes nuevos... (gracias por el código que me facilitaste para conseguir esto). Te recuerdo que soy usuario NOVATO en Visual y trato de aprender lo que más puedo, pero para mí esto aún es chino en varios aspectos. :S
Necesito aprender algunas cosas más acerca de esto, ya que hay items que aún no manejo y me facilitarían la vida en Visual.
Para que quedemos claros, te adjunto el código para que veas como llamo la BD desde el FORM:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\csv.mdb" & ";Persist Security Info=False"
cnn.Open
rs.Open "Select * from db_ventas", cnn, adOpenDynamic, adLockOptimistic
Call Visualizar_Datos
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Los datos los llamo y grabo a la BD por RecordSet y funciona de maravilla...
He agregado a mi FORM algunos COMBOBOX, a los cuáles he conseguido agregar datos por medio del "DataList", en las propiedades del ComboBox.
Ahora, lo que necesito hacer es lo siguiente:
*He creado un segundo FORM para editar exclusivamente los ComboBox (como Form de Administrador por ejemplo), en el cuál he agregado un FRAME que incluye todo lo necesario (a mi parecer) como para editar uno de los ComboBox. Mi idea es hacer varios FRAMES y que cada uno agregue, elimine o actualice opciones de un ComboBox en específico, y que guarde en otra BD los cambios... Esto es para tener separadas las BD de la aplicación y la de los clientes por temas de seguridad (por ejemplo montadas en 2 HDD diferentes por decir algo)... El código que conseguí en la red para esto es el que sigue:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'Connection Confirmation
Private Sub Form_Load()
' establece la cadena de conexión a utilizar en la propiedad ConnectionString
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\csv_maestro.mdb" & ";Persist Security Info=False"
' Abre la base de datos
cnn.Open
' Abre el recordset enviando la consulta sql
rs.Open "Select * from mod_dia_pago", cnn, adOpenDynamic, adLockOptimistic
' Muestra los datos en los text
Call Visualizar_Datos
End Sub
'**************************************************
'**************************************************
' Sub que carga los datos del recordset y los asigna al TextBox1 y ComboBox1
Private Sub Visualizar_Datos()
Text1.Text = CLng(rs("Id"))
Combo1.Text = rs("dia_pago")
End Sub
Private Sub CmdExit_Click()
End
End Sub
Private Sub Command1_Click()
' Esto genera el ítem ingresado en el TextBox2
Combo1.AddItem Text2.Text
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Graba los datos en la base de datos csv_maestro (PRUEBA)
'Call Asignar_Datos
'rs.Update
'MsgBox " Registro guardado", vbInformation, "Grabar"
'Frame2.Enabled = True
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Esto borra el contenido del TextBox2 al Click
Text2.Text = ""
End Sub
Private Sub Command2_Click()
' Esto elimina el ítem activo en el ComboBox1
Combo1.RemoveItem Combo1.ListIndex
End Sub
Private Sub Command3_Click()
' Esto borra todos los ítems del ComboBox1
Combo1.clear
End Sub
Private Sub Command4_Click()
'Esto refresca la lista del ComboBox1, no tiene ninguna utilidad en sí en este ComboBox
'pero si se genera la lista en una base de datos, es necesario para que actualice la BD
Combo1.Refresh
End Sub
Private Sub Frame4_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
**Ahora, lo que necesito saber es como hago que este FORM de administración funcione, ya que no hace lo que necesito que haga (lo que aparece en el codigo, algo esta mal y no se que)
***El problema final es que necesito saber como haer que el FORM de los clientes (el primero) me lea los datos de esta segunda BD y siga guardándome los resultados seleccionados en la BD de los clientes...
¿Se entiende algo?
En resumen:
1° Hacer que un ComboBox lea las opciones que muestra de una BD diferente a la inicial.
2° Conseguir crear y modificar las opciones a seleccionar en un ComboBox desde un Form de administración po ejemplo.
3° Lograr que en el FORM de los clientes se lean las opciones de estos ComboBox que están conectados con otra BD para mostrar sus opciones y me guarde los resultados de las selecciones en la BD de clientes.
(Traté de ser lo más claro posible para que entiendas mi problema...)
1 Respuesta
Respuesta de emperador20
1