Código para mostrá datos en un comboxbox
Necesito un código que me permita llenar un combo box con los datos de una base de datos del campo nombre de la tabala empleados.. Que el combo se autocomplete cuando coloque una letra dentro del combo mostrando todas las coincidencias
1 Respuesta
Respuesta de Jose Miguel
1
1
Jose Miguel, Conocimientos de VB
La manera de agregar datos en un combobox es la siguiente:
Obtención de datos (esta es una rutina que solía usar para cargar los datos de usuario de un base de datos)
Public Sub load_us()
Dim connectingString As String
Dim dlconn As New DataLayer
Dim SQLQuery As String
Dim rsInput As ADODB.Recordset
Dim blsuccess As Boolean
'users
SQLQuery = "SELECT [Name] FROM basededatos.dbo.empleados ORDER BY [Name]"
blsuccess = dlconn.getRecordset("..Aquí va tu conexion a la base de datos...", SQLQuery, rsInput)
If blsuccess Then
If rsInput.RecordCount > 0 Then
Me.Cmbuser.AddItem "Seleccione el empleado..."
While Not rsInput.EOF
Me.Cmbuser.AddItem rsInput("Name")
Me.Cmbuser.ListIndex = 0
rsInput.MoveNext
Wend
End If
Set dlconn = Nothing
Else
Dim aux As String
aux = "Error al cargar la lisa de empleados, consulte con el administrador" & vbCrLf
aux = aux & "La aplicación se cerrará de manera automática."
MsgBox aux, vbCritical, Leyenda
End
End If
End Sub
Obtención de datos (esta es una rutina que solía usar para cargar los datos de usuario de un base de datos)
Public Sub load_us()
Dim connectingString As String
Dim dlconn As New DataLayer
Dim SQLQuery As String
Dim rsInput As ADODB.Recordset
Dim blsuccess As Boolean
'users
SQLQuery = "SELECT [Name] FROM basededatos.dbo.empleados ORDER BY [Name]"
blsuccess = dlconn.getRecordset("..Aquí va tu conexion a la base de datos...", SQLQuery, rsInput)
If blsuccess Then
If rsInput.RecordCount > 0 Then
Me.Cmbuser.AddItem "Seleccione el empleado..."
While Not rsInput.EOF
Me.Cmbuser.AddItem rsInput("Name")
Me.Cmbuser.ListIndex = 0
rsInput.MoveNext
Wend
End If
Set dlconn = Nothing
Else
Dim aux As String
aux = "Error al cargar la lisa de empleados, consulte con el administrador" & vbCrLf
aux = aux & "La aplicación se cerrará de manera automática."
MsgBox aux, vbCritical, Leyenda
End
End If
End Sub
Hola tengo una aplicación que se ejecuat normal
tengo 15 texbox que contienen los datso de los empleados, ya se anombre, dni etc de cada empleado y botonones que van al primer, siguiente anterior y ulktimo registro, agrega nuevo, edita cancela e imprime los datos hasta ahí todo bien .. el problema es que no se como agregar un combobox y que se carguen en el los datos del campo nombre de ñla tabla empleados en el ... ademas que se autocomplete cuando coloque parte del nombre del empleado y cuando seeleccione uno de los empleados del combo y al hacer clic en un command "buscar" que me arrojen los datos de este empleado en los texbox .. y que no tenga problemas en que al hacer clic en los botone sde navegación ya se primero, siguiente, anterior o ultimo pasen a los registros correspondientes.. peste es mi código que me funciona correctamente no quiero que cambies nada solo que ue agregues el código del combo que me hace falat y del command "buscar"
Option Explicit
Dim cn As Connection
Dim rst As Recordset
' Primer registro, siguiente, etc...
Private Sub cmdNav_Click(Index As Integer)
Dim iaños As Integer
' Si hay registro activo sale
If rst.BOF And rst.EOF Then Exit Sub
Select Case Index
Case 0
rst.MoveFirst
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
Case 1
rst.MovePrevious
If rst.BOF Then rst.MoveFirst
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
Case 2
rst.MoveNext
If rst.EOF Then rst.MoveLast
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
Case 3
rst.MoveLast
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
End Select
' Carga la imagen en el Picture
Call Mostrar_Imagen
End Sub
Private Sub Command1_Click(Index As Integer)
Select Case Index
'Agrega un nuevo registro
Case 0
rst.AddNew
Picture1.Cls
'Elimina el registro activo
CmdNuevo
Case 1
If rst.EOF Or rst.BOF Then Exit Sub
If MsgBox("Eliminar Registro", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Picture1.Cls
'Elimina el archivo de la carpeta de imágenes
If rst(Field_Img) <> "" Then
Call Kill(Carpeta_IMG & rst(Field_Img))
End If
rst.Delete
If rst.RecordCount > 0 Then
cmdNormal
Else
cmdSinRegistros
End If
If rst.EOF Or rst.BOF Then
Exit Sub
End If
rst.MoveNext
If rst.EOF Then
On Error Resume Next
rst.MoveLast
End If
'Carga la imagen del registro activo
Mostrar_Imagen
Exit Sub
' Botón Actualizar los cambios en la base de datos
Case 2
If Not rst.EOF And Not rst.BOF Then
rst.Update
Guardar_Imagen
cmdNormal
End If
' Cancela la atualización o edición del registro que se editando o añadiendo
Case 3
cmdEditar
Setear_TextBox
Exit Sub
'Botón Editar el registro activo
Case 4
If rst.EOF And rst.BOF Then Exit Sub
rst.CancelUpdate
If Not rst.BOF And Not rst.EOF Then
If rst(Field_Img) <> "" Then
Call Dibujar_Imagen(Picture1, Carpeta_IMG & rst(Field_Img))
End If
End If
If rst.RecordCount > 0 Then
cmdNormal
Else
cmdSinRegistros
End If
'Carga una imagen en el control Picture1
Case 5
With CommonDialog1
.DialogTitle = " Seleccionar imagen"
.Filter = "BMP|*.bmp|JPEG|*.jpeg|GIF|*.gif|JPG|*.jpg|Todos|*.*"
.ShowOpen
If .FileName = "" Then
Exit Sub
Else
' Graba el nombre en el campo, el id de imagen _
Que es el mismo que el campo Id
rst(Field_Img) = rst!ID '
' Se dibuja la imagen en el Picture
Call Dibujar_Imagen(Picture1, .FileName)
End If
End With
Exit Sub
Case 6
' Limpia la imagen del Picture y Elimina el id de _
imagen del registro actual de la base
If MsgBox("Desea eliminar la imagen ?", vbYesNo + vbQuestion) = vbYes Then
Picture1.Cls
rst(Field_Img) = ""
Exit Sub
End If
End Select
Setear_TextBox
' Muestra la imagen
Mostrar_Imagen
End Sub
Sub Guardar_Imagen()
' Si el campo Id_Imagen no está vacio ...
If rst(Field_Img) <> "" And CommonDialog1.FileName <> "" Then
' Copia el archivo a la carpeta de imagen
Call FileCopy(CommonDialog1.FileName, _
Carpeta_IMG & "\" & rst!ID)
'... si no, si el archivo está en lacarpeta lo elimina
ElseIf Dir(Carpeta_IMG & "\" & rst!ID) <> "" And rst(Field_Img) = "" Then
Call Kill(Carpeta_IMG & rst!ID)
End If
End Sub
Private Sub Mostrar_Imagen()
With rst
' Si no hay ningún registro activo sale
If .EOF Or .BOF Then
Exit Sub
End If
' Si el registro no tiene una imagen asociada Limpia el Picture
If .Fields(Field_Img) = "" Or .Fields(Field_Img) = 0 Then
Picture1.Cls
Else
' Lee el archivo de imagen y lo dibuja en el Picture
Call Dibujar_Imagen(Picture1, Carpeta_IMG & .Fields(Field_Img))
End If
'Me.Caption = "Registro N°: " & CStr(.AbsolutePosition)
End With
End Sub
Private Sub Setear_TextBox()
'Bloquea y desbloquea los textbox
Dim T As TextBox
For Each T In Me.txt_field
T.Locked = Not T.Locked
Next
End Sub
' Habilita y deshabilita los CommandButton
Private Sub Setear_botones()
Dim i As Integer
For i = 0 To Command1.Count - 1
Command1(i).Enabled = Not Command1(i).Enabled
Next
For i = 0 To cmdnav.Count - 1
cmdnav(i).Enabled = Not cmdnav(i).Enabled
Next
End Sub
Private Sub Imprimir()
Dim rsficha As ADODB.Recordset
Set rsficha = New Recordset
rsficha.Open "Select * FROM empleados Where Id =" & lblid.Caption, cn, adOpenStatic, adLockReadOnly
If rsficha.RecordCount > 0 Then
Set DataReport1.DataSource = rsficha
With DataReport1
If rsficha!id_Imagen <> "" Then
.Sections.Item("Sección1").Controls("lblSinFoto").Visible = False
Set .Sections.Item("Sección1").Controls("rptImagen").Picture = Picture1.Image
Else
.Sections.Item("Sección1").Controls("lblSinFoto").Visible = True
End If
DataReport1.Show
End With
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
End Sub
Private Sub Command2_Click()
Call Imprimir
End Sub
Private Sub Command3_Click()
Form4.Show
Form5.Hide
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
If Not rst Is Nothing Then
If rst.State = adStateOpen Then rst.Close
Set rst = Nothing
End If
If Not cn Is Nothing Then
If cn.State = adStateOpen Then cn.Close
Set cn = Nothing
End If
End Sub
Private Sub Form_Load()
Dim Pathbd As String, cadena As String
Dim T As TextBox
Set cn = New Connection
Pathbd = App.Path & "\data.mdb"
cadena = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Pathbd & _
";Persist Security Info=False"
cn.Open cadena
Set rst = New Recordset
rst.Open "Select * FROM empleados Order by NOMBRE", cn, adOpenStatic, adLockOptimistic
' Nombre del campo que tiene el ID de imagen
Field_Img = "ID_Imagen"
' Path de la carpeta donde están las imagenes
Carpeta_IMG = App.Path & "\imgemp\"
' Si no existe la carpeta para guardar las imagen la crea
If Dir(App.Path & "\imgemp", vbDirectory) = "" Then
MkDir App.Path & "\imgemp"
End If
If rst.RecordCount > 0 Then
Call cmdNormal
Else
Call cmdSinRegistros
End If
Set txt_field(0).DataSource = rst
Set txt_field(1).DataSource = rst
Set txt_field(2).DataSource = rst
Set txt_field(3).DataSource = rst
Set txt_field(4).DataSource = rst
Set txt_field(5).DataSource = rst
Set txt_field(6).DataSource = rst
Set txt_field(7).DataSource = rst
Set txt_field(8).DataSource = rst
Set txt_field(9).DataSource = rst
Set txt_field(10).DataSource = rst
Set txt_field(11).DataSource = rst
Set txt_field(12).DataSource = rst
Set txt_field(13).DataSource = rst
Set txt_field(14).DataSource = rst
Set txt_field(15).DataSource = rst
Set txt_field(16).DataSource = rst
Set txt_field(17).DataSource = rst
txt_field(0).DataField = "Nombre"
txt_field(1).DataField = "dni"
txt_field(2).DataField = "ruc"
txt_field(3).DataField = "domicilio"
txt_field(4).DataField = "cargo"
txt_field(5).DataField = "e-mail"
txt_field(6).DataField = "celular"
txt_field(7).DataField = "fijo"
txt_field(8).DataField = "est_sup"
txt_field(9).DataField = "fech_ing"
txt_field(10).DataField = "fech_ret"
txt_field(11).DataField = "tipo de afiliacion"
txt_field(12).DataField = "est_civ"
txt_field(13).DataField = "fech_nac"
txt_field(14).DataField = "est_pri"
txt_field(15).DataField = "est_sec"
txt_field(16).DataField = "edad"
txt_field(17).DataField = ""
'Opcional: esto visualiza el Id del registro en un label
Set lblid.DataSource = rst
lblid.DataField = "Id"
Call Setear_TextBox
Mostrar_Imagen
While Not rst.EOF
Combo1.AddItem rst.Fields("nombre").Value
rst.MoveNext
Wend
End Sub
Sub cmdNormal()
DeshabilitarTodosCmd
Command1(0).Enabled = True
Command1(1).Enabled = True
Command1(3).Enabled = True
End Sub
Sub cmdSinRegistros()
DeshabilitarTodosCmd
Command1(0).Enabled = True
End Sub
Sub cmdEditar()
DeshabilitarTodosCmd
Command1(2).Enabled = True
Command1(4).Enabled = True
Command1(5).Enabled = True
Command1(6).Enabled = True
End Sub
Sub CmdNuevo()
DeshabilitarTodosCmd
Command1(2).Enabled = True
Command1(4).Enabled = True
Command1(5).Enabled = True
Command1(6).Enabled = True
End Sub
Sub DeshabilitarTodosCmd()
Command1(0).Enabled = False
Command1(1).Enabled = False
Command1(2).Enabled = False
Command1(3).Enabled = False
Command1(4).Enabled = False
Command1(5).Enabled = False
Command1(6).Enabled = False
End Sub
Private Sub mnuImprimir_Click()
Call Imprimir
End Sub
Private Sub mnuVerTodo_Click()
With Form2
Set .MSHFlexGrid1.DataSource = rst
.Show vbModal
End With
End Sub
tengo 15 texbox que contienen los datso de los empleados, ya se anombre, dni etc de cada empleado y botonones que van al primer, siguiente anterior y ulktimo registro, agrega nuevo, edita cancela e imprime los datos hasta ahí todo bien .. el problema es que no se como agregar un combobox y que se carguen en el los datos del campo nombre de ñla tabla empleados en el ... ademas que se autocomplete cuando coloque parte del nombre del empleado y cuando seeleccione uno de los empleados del combo y al hacer clic en un command "buscar" que me arrojen los datos de este empleado en los texbox .. y que no tenga problemas en que al hacer clic en los botone sde navegación ya se primero, siguiente, anterior o ultimo pasen a los registros correspondientes.. peste es mi código que me funciona correctamente no quiero que cambies nada solo que ue agregues el código del combo que me hace falat y del command "buscar"
Option Explicit
Dim cn As Connection
Dim rst As Recordset
' Primer registro, siguiente, etc...
Private Sub cmdNav_Click(Index As Integer)
Dim iaños As Integer
' Si hay registro activo sale
If rst.BOF And rst.EOF Then Exit Sub
Select Case Index
Case 0
rst.MoveFirst
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
Case 1
rst.MovePrevious
If rst.BOF Then rst.MoveFirst
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
Case 2
rst.MoveNext
If rst.EOF Then rst.MoveLast
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
Case 3
rst.MoveLast
If txt_field(13).Text <> "" Then
iaños = CalculaEdad(txt_field(13).Text)
txt_field(16).Text = "Tiene " & iaños & " años."
rst.Update
Else
txt_field(16).Text = ""
End If
End Select
' Carga la imagen en el Picture
Call Mostrar_Imagen
End Sub
Private Sub Command1_Click(Index As Integer)
Select Case Index
'Agrega un nuevo registro
Case 0
rst.AddNew
Picture1.Cls
'Elimina el registro activo
CmdNuevo
Case 1
If rst.EOF Or rst.BOF Then Exit Sub
If MsgBox("Eliminar Registro", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Picture1.Cls
'Elimina el archivo de la carpeta de imágenes
If rst(Field_Img) <> "" Then
Call Kill(Carpeta_IMG & rst(Field_Img))
End If
rst.Delete
If rst.RecordCount > 0 Then
cmdNormal
Else
cmdSinRegistros
End If
If rst.EOF Or rst.BOF Then
Exit Sub
End If
rst.MoveNext
If rst.EOF Then
On Error Resume Next
rst.MoveLast
End If
'Carga la imagen del registro activo
Mostrar_Imagen
Exit Sub
' Botón Actualizar los cambios en la base de datos
Case 2
If Not rst.EOF And Not rst.BOF Then
rst.Update
Guardar_Imagen
cmdNormal
End If
' Cancela la atualización o edición del registro que se editando o añadiendo
Case 3
cmdEditar
Setear_TextBox
Exit Sub
'Botón Editar el registro activo
Case 4
If rst.EOF And rst.BOF Then Exit Sub
rst.CancelUpdate
If Not rst.BOF And Not rst.EOF Then
If rst(Field_Img) <> "" Then
Call Dibujar_Imagen(Picture1, Carpeta_IMG & rst(Field_Img))
End If
End If
If rst.RecordCount > 0 Then
cmdNormal
Else
cmdSinRegistros
End If
'Carga una imagen en el control Picture1
Case 5
With CommonDialog1
.DialogTitle = " Seleccionar imagen"
.Filter = "BMP|*.bmp|JPEG|*.jpeg|GIF|*.gif|JPG|*.jpg|Todos|*.*"
.ShowOpen
If .FileName = "" Then
Exit Sub
Else
' Graba el nombre en el campo, el id de imagen _
Que es el mismo que el campo Id
rst(Field_Img) = rst!ID '
' Se dibuja la imagen en el Picture
Call Dibujar_Imagen(Picture1, .FileName)
End If
End With
Exit Sub
Case 6
' Limpia la imagen del Picture y Elimina el id de _
imagen del registro actual de la base
If MsgBox("Desea eliminar la imagen ?", vbYesNo + vbQuestion) = vbYes Then
Picture1.Cls
rst(Field_Img) = ""
Exit Sub
End If
End Select
Setear_TextBox
' Muestra la imagen
Mostrar_Imagen
End Sub
Sub Guardar_Imagen()
' Si el campo Id_Imagen no está vacio ...
If rst(Field_Img) <> "" And CommonDialog1.FileName <> "" Then
' Copia el archivo a la carpeta de imagen
Call FileCopy(CommonDialog1.FileName, _
Carpeta_IMG & "\" & rst!ID)
'... si no, si el archivo está en lacarpeta lo elimina
ElseIf Dir(Carpeta_IMG & "\" & rst!ID) <> "" And rst(Field_Img) = "" Then
Call Kill(Carpeta_IMG & rst!ID)
End If
End Sub
Private Sub Mostrar_Imagen()
With rst
' Si no hay ningún registro activo sale
If .EOF Or .BOF Then
Exit Sub
End If
' Si el registro no tiene una imagen asociada Limpia el Picture
If .Fields(Field_Img) = "" Or .Fields(Field_Img) = 0 Then
Picture1.Cls
Else
' Lee el archivo de imagen y lo dibuja en el Picture
Call Dibujar_Imagen(Picture1, Carpeta_IMG & .Fields(Field_Img))
End If
'Me.Caption = "Registro N°: " & CStr(.AbsolutePosition)
End With
End Sub
Private Sub Setear_TextBox()
'Bloquea y desbloquea los textbox
Dim T As TextBox
For Each T In Me.txt_field
T.Locked = Not T.Locked
Next
End Sub
' Habilita y deshabilita los CommandButton
Private Sub Setear_botones()
Dim i As Integer
For i = 0 To Command1.Count - 1
Command1(i).Enabled = Not Command1(i).Enabled
Next
For i = 0 To cmdnav.Count - 1
cmdnav(i).Enabled = Not cmdnav(i).Enabled
Next
End Sub
Private Sub Imprimir()
Dim rsficha As ADODB.Recordset
Set rsficha = New Recordset
rsficha.Open "Select * FROM empleados Where Id =" & lblid.Caption, cn, adOpenStatic, adLockReadOnly
If rsficha.RecordCount > 0 Then
Set DataReport1.DataSource = rsficha
With DataReport1
If rsficha!id_Imagen <> "" Then
.Sections.Item("Sección1").Controls("lblSinFoto").Visible = False
Set .Sections.Item("Sección1").Controls("rptImagen").Picture = Picture1.Image
Else
.Sections.Item("Sección1").Controls("lblSinFoto").Visible = True
End If
DataReport1.Show
End With
Else
MsgBox "No hay registro para imprimir ", vbInformation
End If
End Sub
Private Sub Command2_Click()
Call Imprimir
End Sub
Private Sub Command3_Click()
Form4.Show
Form5.Hide
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
If Not rst Is Nothing Then
If rst.State = adStateOpen Then rst.Close
Set rst = Nothing
End If
If Not cn Is Nothing Then
If cn.State = adStateOpen Then cn.Close
Set cn = Nothing
End If
End Sub
Private Sub Form_Load()
Dim Pathbd As String, cadena As String
Dim T As TextBox
Set cn = New Connection
Pathbd = App.Path & "\data.mdb"
cadena = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Pathbd & _
";Persist Security Info=False"
cn.Open cadena
Set rst = New Recordset
rst.Open "Select * FROM empleados Order by NOMBRE", cn, adOpenStatic, adLockOptimistic
' Nombre del campo que tiene el ID de imagen
Field_Img = "ID_Imagen"
' Path de la carpeta donde están las imagenes
Carpeta_IMG = App.Path & "\imgemp\"
' Si no existe la carpeta para guardar las imagen la crea
If Dir(App.Path & "\imgemp", vbDirectory) = "" Then
MkDir App.Path & "\imgemp"
End If
If rst.RecordCount > 0 Then
Call cmdNormal
Else
Call cmdSinRegistros
End If
Set txt_field(0).DataSource = rst
Set txt_field(1).DataSource = rst
Set txt_field(2).DataSource = rst
Set txt_field(3).DataSource = rst
Set txt_field(4).DataSource = rst
Set txt_field(5).DataSource = rst
Set txt_field(6).DataSource = rst
Set txt_field(7).DataSource = rst
Set txt_field(8).DataSource = rst
Set txt_field(9).DataSource = rst
Set txt_field(10).DataSource = rst
Set txt_field(11).DataSource = rst
Set txt_field(12).DataSource = rst
Set txt_field(13).DataSource = rst
Set txt_field(14).DataSource = rst
Set txt_field(15).DataSource = rst
Set txt_field(16).DataSource = rst
Set txt_field(17).DataSource = rst
txt_field(0).DataField = "Nombre"
txt_field(1).DataField = "dni"
txt_field(2).DataField = "ruc"
txt_field(3).DataField = "domicilio"
txt_field(4).DataField = "cargo"
txt_field(5).DataField = "e-mail"
txt_field(6).DataField = "celular"
txt_field(7).DataField = "fijo"
txt_field(8).DataField = "est_sup"
txt_field(9).DataField = "fech_ing"
txt_field(10).DataField = "fech_ret"
txt_field(11).DataField = "tipo de afiliacion"
txt_field(12).DataField = "est_civ"
txt_field(13).DataField = "fech_nac"
txt_field(14).DataField = "est_pri"
txt_field(15).DataField = "est_sec"
txt_field(16).DataField = "edad"
txt_field(17).DataField = ""
'Opcional: esto visualiza el Id del registro en un label
Set lblid.DataSource = rst
lblid.DataField = "Id"
Call Setear_TextBox
Mostrar_Imagen
While Not rst.EOF
Combo1.AddItem rst.Fields("nombre").Value
rst.MoveNext
Wend
End Sub
Sub cmdNormal()
DeshabilitarTodosCmd
Command1(0).Enabled = True
Command1(1).Enabled = True
Command1(3).Enabled = True
End Sub
Sub cmdSinRegistros()
DeshabilitarTodosCmd
Command1(0).Enabled = True
End Sub
Sub cmdEditar()
DeshabilitarTodosCmd
Command1(2).Enabled = True
Command1(4).Enabled = True
Command1(5).Enabled = True
Command1(6).Enabled = True
End Sub
Sub CmdNuevo()
DeshabilitarTodosCmd
Command1(2).Enabled = True
Command1(4).Enabled = True
Command1(5).Enabled = True
Command1(6).Enabled = True
End Sub
Sub DeshabilitarTodosCmd()
Command1(0).Enabled = False
Command1(1).Enabled = False
Command1(2).Enabled = False
Command1(3).Enabled = False
Command1(4).Enabled = False
Command1(5).Enabled = False
Command1(6).Enabled = False
End Sub
Private Sub mnuImprimir_Click()
Call Imprimir
End Sub
Private Sub mnuVerTodo_Click()
With Form2
Set .MSHFlexGrid1.DataSource = rst
.Show vbModal
End With
End Sub
Al momento no dispongo de una pc con VB6 instalado pero espero que esto te pueda ser de ayuda
1. Agrega o modifica en el método Load_Form lo siguiente:
'--------
' Veo que tienes ya un código para llenar el combobox
'--------
Do While Not rst.EOF
Combo1.AddItem rst.Fields("nombre").Value
rst.MoveNext
Loop
'------------
2. Agrega este método:
'------ Código Agregado
Private Sub SearchByName()
' aqui recorres tu recordset en función del texto que tiene en el combo1
dim i as integer
for i =0 to rst.recordcount
if rst.Fields("nombre").Value=Combo1.text then
' aqui agrega a cada objeto los valores de cada campo de tu recordset.
end if
next
End Sub
'----------------------------------
3. Agrega un botón por ej. BtnSearch y en el evento click llama al método
buscar: Call SearchByName
4. Para que se autocomplete automáticamente debes seleccionar la propiedad
combo box styles en "Drop Down List"
1. Agrega o modifica en el método Load_Form lo siguiente:
'--------
' Veo que tienes ya un código para llenar el combobox
'--------
Do While Not rst.EOF
Combo1.AddItem rst.Fields("nombre").Value
rst.MoveNext
Loop
'------------
2. Agrega este método:
'------ Código Agregado
Private Sub SearchByName()
' aqui recorres tu recordset en función del texto que tiene en el combo1
dim i as integer
for i =0 to rst.recordcount
if rst.Fields("nombre").Value=Combo1.text then
' aqui agrega a cada objeto los valores de cada campo de tu recordset.
end if
next
End Sub
'----------------------------------
3. Agrega un botón por ej. BtnSearch y en el evento click llama al método
buscar: Call SearchByName
4. Para que se autocomplete automáticamente debes seleccionar la propiedad
combo box styles en "Drop Down List"
Hola jose .. no me funciono el código .. seria mucho pedirte que lo pruebes en visual 6.0 lo necesito brother para el fin de semana .. necesito entregar este trabajo .. es mi nota si no me van a jalar .. todo el código me funciona perfecto. Solo quiero buscar nada más gracias de antemano ..
Hola jose muchas gracias .. pero dime cuale es tu correo.. el proyecto te lo envío mañana por ahora he salido de viahe urgente .. ok gracias
- Compartir respuesta
1 comentario
Hola, mira tengo una formulario para cargar facturas a un registro y con quisiera tengo un combox para seleccionar el id del cliente y quisiera que el siguiente textbox me cargara el nombre asociado a el id, me colaboras con la programación en visual basic al correo: [email protected] - CONTRATISTA JV SAS