Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Mi DBCombo pierde el foco

Estas en el tema de Mi DBCombo pierde el foco en el foro de Visual Basic clásico en Foros del Web. El data combo esta dividido en DBCombo(0)->Rubro, DBCombo(1)->Grupo, DBCombo(2)->Nombre de producto El DBcombo(2) tiene como BoundCalumn: in_codigo Este es el codigo... Private Sub DBCombo1_GotFocus(Index As ...
  #1 (permalink)  
Antiguo 07/07/2005, 15:41
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
Mi DBCombo pierde el foco

El data combo esta dividido en DBCombo(0)->Rubro, DBCombo(1)->Grupo, DBCombo(2)->Nombre de producto

El DBcombo(2) tiene como BoundCalumn: in_codigo



Este es el codigo...


Private Sub DBCombo1_GotFocus(Index As Integer)
Select Case Index
Case 1
strSql = "SELECT DISTINCT(in_Codgrp), gr_Codigo, gr_Nombre " & _
"FROM Grupos, MaestrodeInsumos " & _
"WHERE gr_Codigo = in_Codgrp"
If DBCombo1(0).BoundText > "" Then
strSql = strSql & " And in_Codrub = '" & DBCombo1(0).BoundText & "'"
End If
datGrupos.RecordSource = strSql
datGrupos.Refresh
DBCombo1(1).Refresh
Case 2
strSql = "SELECT DISTINCT(in_Codpro), in_Codlot, in_Nombre " & _
"FROM MaestrodeInsumos "
If DBCombo1(0).BoundText > "" Then
strSql = strSql & IIf(InStr(1, strSql, "WHERE") = 0, "WHERE ", "")
strSql = strSql & "in_Codrub = '" & DBCombo1(0).BoundText & "'"
End If
If DBCombo1(1).BoundText > "" Then
strSql = strSql & IIf(InStr(1, strSql, "WHERE") = 0, "WHERE ", " And ")
strSql = strSql & "in_Codgrp = '" & DBCombo1(1).BoundText & "'"
End If
strSql = strSql & " order by in_Nombre"
datMaestrodeInsumos5.RecordSource = strSql
datMaestrodeInsumos5.Refresh
DBCombo1(2).Refresh

End Select
End Sub

Apezar de que hace un Refresh cuando hago un msgbox al dbcombo.textbound me muestra el contenido escrito y no "indice" o como quiera llamarce a la clave de ese dbcombo...

Porque pasa eso???

si yo seleciono
1º el rubro
2º el grupo
3º el producto, pero este ultimo no lo toma



__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #2 (permalink)  
Antiguo 07/07/2005, 21:29
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
despues del msgbox dale un setfocus, para que lo ponga donde vos queres, por ejemplo

datacombo.setfocus

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 11/07/2005, 07:49
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
NO FUNCIONA sigue perdiendo el foco

Nop no pasa nada sigue perdiendo el foco puse este codigo:

En el caso de selecionar el nombre del producto en especifico deberia quedar guardado en el combo1(2).boundtext el codigo del producto no el nombre.


AL ejecutar la consulta SQL yo hago la busqueda por rubro, grupo , y nombre especifico del producto.


Las dos primeras me las busca bien, pero cuando deseo buscar por algun producto en especifico pierdo el codigo de este y me queda el nombre que no me srive para la busqueda


Private Sub DBCombo1_GotFocus(Index As Integer)
Select Case Index
Case 1
strSql = "SELECT DISTINCT(in_Codgrp), gr_Codigo, gr_Nombre " & _
"FROM Grupos, MaestrodeInsumos " & _
"WHERE gr_Codigo = in_Codgrp"
If DBCombo1(0).BoundText > "" Then
strSql = strSql & " And in_Codrub = '" & DBCombo1(0).BoundText & "'"
End If
datGrupos.RecordSource = strSql
datGrupos.Refresh
DBCombo1(1).Refresh
Case 2
strSql = "SELECT DISTINCT(in_Codpro), in_Codlot, in_Nombre " & _
"FROM MaestrodeInsumos "
If DBCombo1(1).BoundText > "" Then
strSql = strSql & IIf(InStr(1, strSql, "WHERE") = 0, "WHERE ", " And ")
strSql = strSql & " in_Codgrp = '" & DBCombo1(1).BoundText & "'"
End If
strSql = strSql & " order by in_Nombre"
datMaestrodeInsumos5.RecordSource = strSql
datMaestrodeInsumos5.Refresh
DBCombo1(2).Refresh
End Select

End Sub
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #4 (permalink)  
Antiguo 11/07/2005, 09:37
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
mira desde mi punto de vista sería en la funcion on_change

y el setforcus lo antes del end sub final

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 11/07/2005, 10:15
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
No te entiendo lo que me quieres decir, me lo podrias explicar mejor???
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #6 (permalink)  
Antiguo 11/07/2005, 10:56
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
que tu programacion la coloques en el evento change, coloca alli tu porgramación para ver que sucede no debería perder el foco.

y por ultimo antes del end sub del evento change coloca el setfocus hacia el proximo comobo que querras trabajar..

nos vemos y espero haberme explicado mejor..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #7 (permalink)  
Antiguo 11/07/2005, 13:13
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
No funciona !!! :(

Aun cambiandole el evento a change no quiere tomar el codigo:

por ejemplo deberia tomar el ID del producto que es chichip0007U pero me toma el nombre que es "XXX".

Ademas como le cambie al evento change y el paso al otro DBCombi1 es por setfocus, no toma los valores del grupo


El el DBCombo1 se divide en :

DBCombo1(0) corresponde a la busqueda del rubro
DBCombo2(1) corresponde a la busqueda del grupo
DBCombo1(2) corresponde a la busqueda del Producto.


Si hago una busqueda haciendo un case(index) preguntando:

Buscar solo por el rubro-> lo hace
Buscar rubro y grupo-> lo hace
Buscar rubro, grupo y producto -> NO LO HACE
porque nunca el DBCombo1(2) toma el valor del Codigo_id, toma solo el Nombre_producto


No se que más puedo hacer incluso puse un texbox para que me mostrara la consulta y efectivamente busca por el nmbre y no por el codigo. Habiendo en la base de datos dos porductos con el mismo nombre pero con distintorubro no se puede buscar de esa forma...

GeoAvila me peudes ayudar ??? no se que mas puedo cambiarle al DBCombo1 para que funcione
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #8 (permalink)  
Antiguo 11/07/2005, 13:21
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
mejor aqui te pongo un ejemplo de como hice yo lo mismo pero con unas propinas..
'Este es el listado de meseros.
Código:
Private Sub CboMeseros_Change()
If Me.CboMeseros.Text <> "" Then
    Dim Lectura As String
              Dim adoPrimaryRS As Recordset
              Set adoPrimaryRS = New Recordset
    Lectura = "SELECT   `comisiones_empleados`.`id_empleado`,  `comisiones_empleados`.`fecha` FROM   `comisiones_empleados` WHERE   (`comisiones_empleados`.`id_documento` = '" & CStr(Me.NoFac.Text) & "') AND  (`comisiones_empleados`.`id_empleado` = " & Val(Me.CboMeseros.BoundText) & ") GROUP BY  `comisiones_empleados`.`fecha`"
    adoPrimaryRS.Open Lectura, Cxn, adOpenStatic, adLockOptimistic
    If adoPrimaryRS.BOF = False Then
        Set Me.DataFecha.RowSource = adoPrimaryRS
        Me.DataFecha.ListField = "fecha"
        Me.DataFecha.BoundColumn = "fecha"
        Me.DataFecha.Enabled = True
    End If
End If
End Sub
Esto me deplega las propinas de los meseros por fecha.

Código:
Private Sub DataFecha_Click()
Dim SFecha As String
If Me.DataFecha.Text <> "" Then
    Dim Lectura As String
              Dim adoPrimaryRS As Recordset
              Set adoPrimaryRS = New Recordset
    SFecha = Format(Me.DataFecha.Text, "yyyy/MM/DD")
    Lectura = "SELECT   `comisiones_empleados`.`id_empleado`,  `comisiones_empleados`.`hora` FROM   `comisiones_empleados` WHERE   (`comisiones_empleados`.`id_documento` = '" & CStr(NoFac.Text) & "') AND   (`comisiones_empleados`.`id_empleado` = " & Val(Me.CboMeseros.BoundText) & ") AND    (`comisiones_empleados`.`fecha` = '" & SFecha & "')"
    adoPrimaryRS.Open Lectura, Cxn, adOpenStatic, adLockOptimistic
    If adoPrimaryRS.BOF = False Then
        Set Me.DataHora.RowSource = adoPrimaryRS
        Me.DataHora.ListField = "hora"
        Me.DataHora.BoundColumn = "hora"
        Me.DataHora.Enabled = True
    End If
End If
End Sub
'Aqui deplega la hora que fueron cargadas las propinas, la seleccionas y las lista en un grid.

Private Sub DataHora_Click()
Dim SFecha As String
Dim i As Integer
If Me.DataFecha.Text <> "" Then
    Dim Lectura As String
              Dim adoPrimaryRS As Recordset
              Set adoPrimaryRS = New Recordset
    SFecha = Format(Me.DataFecha.Text, "yyyy/MM/DD")
    Lectura = "SELECT   `comisiones_empleados`.`id_empleado`,  CONCAT(`empleados`.`nombre`,' ',`empleados`.`apellido`) AS nombres,  `comisiones_empleados`.`comision` FROM   `comisiones_empleados`  INNER JOIN `empleados` ON (`comisiones_empleados`.`id_empleado` = `empleados`.`id_empleado`) WHERE   (`comisiones_empleados`.`id_documento` = '" & CStr(NoFac.Text) & "') AND   (`comisiones_empleados`.`id_empleado` = " & Val(Me.CboMeseros.BoundText) & ") AND    (`comisiones_empleados`.`fecha` = '" & SFecha & "') AND    (`comisiones_empleados`.`hora` = '" & CStr(DataHora.Text) & "')"
    adoPrimaryRS.Open Lectura, Cxn, adOpenStatic, adLockOptimistic
    Me.ListadoActual.Rows = adoPrimaryRS.RecordCount + 1
    If adoPrimaryRS.BOF = False Then
        For i = 1 To adoPrimaryRS.RecordCount
            Me.ListadoActual.TextMatrix(i, 1) = adoPrimaryRS!id_empleado
            Me.ListadoActual.TextMatrix(i, 2) = adoPrimaryRS!nombres
            Me.ListadoActual.TextMatrix(i, 3) = Format(adoPrimaryRS!comision, "######0.00")
        Next i
    End If
End If
nos vemos.. espero te sirva el codigo..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #9 (permalink)  
Antiguo 11/07/2007, 21:04
 
Fecha de Ingreso: julio-2007
Mensajes: 2
Antigüedad: 16 años, 9 meses
Puntos: 0
NECESITO AYUDA CON DBCombo1 o como sea mejor

NECESITO AYUDA CON DBCombo1 o como sea mejor.

trato de estraer los registros que estan en BD y los estra pero como no es

lo que quiero hacer es:

cuando despliegue DBCombo1 la lista de paises y selecciones "VENEZUELA" en el DBCombo2 de abajo deben cargarse todos los "ESTADOS" que pertenecen a ese pais, y a su vez en el DBCombo3 siguiente deben cargarse los "MUNICIPIOS" que pertenecen a ese estado.

ejemplo:

pais: VENEZUELA

estado: MERIDA

municipio: LOS TEQUES


la programacion es en VISUAL BASIC si me pueden ayudar les agradesco a quien sea antes de el 22 de el mes de Julio de 2007.

lo pueden enviar a mi correo "[email protected]"

SI LO HACE SE LOS AGRADESCO..


GRACIAS
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:58.