Tema: Consulta SQL
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2008, 19:30
bufalobill
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Consulta SQL

hola amigos:

es primera vez que quiero tratar de obtener datos simultaneamente de dos tablas

tengo una db llamada Productos con dos tablas Ingresos y Precios

Ingresos tiene campos Id_ingreso auto incrementable, fecha, codigo, descripcion

Precios tiene campos Id_precio auto incrementable, Id_ingreso, PrecioDetalle, PrecioDocena

relacione el campo Id_ingreso en ambas tablas con integridad referencial, ahora

en ambas tablas he ingresado datos de esta forma:

Código:
    'Establecer ruta de conexión
    sBase = App.Path & "\" & "Productos.mdb"
    Tabla = "Ingresos"

    ' Crear los objetos
    Set cnn = New adodb.Connection
    Set rst = New adodb.Recordset

    
        cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBase
        s = "SELECT * FROM " & Tabla
        rst.Open s, cnn, adOpenDynamic, adLockOptimistic
    
                
        rst.AddNew
        rst!Id_ingreso = lbl_ID.Caption
        rst!Fecha = DTPicker1.Value
        rst!Codigo = Text1(0).Text
        rst!Descripcion = Text1(1).Text
        rst!Cantidad = Val(Text1(2).Text)
        rst!Cunitario = Val(Text1(3).Text)
        rst!Ctotal = Val(Text1(4).Text)
        rst.Update
        rst.Close
        cnn.Close
        Err = 0
        
        Set rst = Nothing
        Set cnn = Nothing
Código:
    'Establecer ruta de conexión
    sBase = App.Path & "\" & "Productos.mdb"
    Tabla = "Precios"

    ' Crear los objetos
    Set cnn = New adodb.Connection
    Set rst = New adodb.Recordset

    
        cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBase
        s = "SELECT * FROM " & Tabla
        rst.Open s, cnn, adOpenDynamic, adLockOptimistic
    
                
        rst.AddNew
        rst!Id_precio = lbl_IDprecio.Caption
        rst!Id_ingreso = Text1(0).Text
        rst!PrecioDetalle = Val(Text1(5).Text)
        rst!PrecioDocena = Val(Text1(6).Text)
        rst.Update
        rst.Close
        cnn.Close
        Err = 0
        
        Set rst = Nothing
        Set cnn = Nothing
hasta ahi puedo ingresar en forma correcta

pero ahora necesito hacer una consulta que me involucre a las dos tablas a travez de los cambos relacionados Id_ingreso.

y francamente No tengo idea de como hacerlo

los resultados los muestro en un listview asi

Código:
Private Sub cargar()
        
        'Establecer ruta de conexión
        sBase = App.Path & "\" & "Productos.mdb"
        Tabla = "Ingresos"

        ' Crear los objetos
        Set cnn = New adodb.Connection
        Set rst = New adodb.Recordset
        

        cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBase
        s = "SELECT * FROM " & Tabla & " "
        rst.Open s, cnn, adOpenDynamic, adLockOptimistic
    
        With rst
        
            If (.BOF Or .EOF) Then
                MsgBox "No existen registros en la db", vbCritical
                Exit Sub
            Else
        
                ListView1.ListItems.Clear
                .MoveFirst
            
                Do While Not .EOF
                
                    ListView1.ListItems.Add , , .Fields("Id_ingreso") & ""
                    ListView1.ListItems(ListView1.ListItems.Count).SubItems(1) = .Fields("Codigo") & ""
                    ListView1.ListItems(ListView1.ListItems.Count).SubItems(2) = .Fields("Descripcion") & ""
                    ListView1.ListItems(ListView1.ListItems.Count).SubItems(3) = .Fields("Cunitario") & ""
                    
                
                .MoveNext

                Loop
            End If
        End With
        
                   
                    rst.Close
                    cnn.Close
                    Err = 0

                    Set rst = Nothing
                    Set cnn = Nothing
                    
                    

End Sub
ahora lo que deseo hacer es que al clicar en un item

me relaciones las dos db a travez del campo Id_ingreso y me muestre los resultados de ambas tablas

Código:
For i = ListView1.ListItems.Count To 1 Step -1

    If ListView1.ListItems(i).Selected Then
y es aqui donde guateo, pues no se como conectar con las dos tablas ni como hacer la consulta simultanea
por favor les ruego me ayuden

muy agradecido de antemano

Bufalobill