Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Aprire due Recordset Simultaneamente

    Ciao Di Nuovo

    Volevo sapere come si fa ad aprire 2 recordset simultaneamente

    Ad esempio vorrei visualizzare in delle textbox i dati di un singolo cliente dalla tabella customer e in datagrid l'elenco dei prodotti

    precedentemente li associavo ai vari data1recordset data2.. etc ora incominciando ad usare ADO e le query SQL non so da che parte iniziare

    Ovvero....
    Rs.Open "SELECT * From prodotti"

    Set DataGrid1.DataSource = Rs

    ottengo i record dalla tabella prodotti

    se voglio ottenere con un un altra query i clienti dalla tabella customer e lasciare visualizzati i dati della tabella prodotti devo chiudere rs quindi come faccio a creare un altro recordset?

    Grazie in Anticipo per le risposte
    Php4ever!

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Di Rs ne puoi aprire quanti ne vuoi, ovvero si tratta solo d'impiego di risorse. E' meglio tenere aperto il Rs e connessione al DB solo per lo stretto necessario, ma se serve ... .
    Potresti superare "il costo in risorse impiegate", usando delle variabili che carichi con una Select, chiudi e cancelli il Rs, chiudi e cancelli la connessione; poi fai la procedura di apertura di una nuova connessione ... , tutto nella stessa routine, ed infine usi le variabili che hai caricato.
    Ciao.
    LM

  3. #3
    Grz Lmondi

    Ok Risolto Avevo Dimenticato Di aggiungere Il secondo Recordset anche nel modulo di connessione




    codice:
       
     
    Sub connetti() 
    With Cn 
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _ 
    "Data source =Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Mark&Jakula\Desktop\VB6ordprova\ordini.mdb;Persist Security Info=False " 
    
    'nella prima riga si specifica il provider 
    'nella seconda il percorso al db 
    .ConnectionTimeout = 5 'numero dei secondi di timeout 
    .CursorLocation = adUseClient 'tipo di cursore 
    .Mode = adModeShareDenyNone 'nessuna limitazione 
    .Open 'apertura ricordarsi di chiuderla 
    End With 
    With Rs 
    .ActiveConnection = Cn ' imposta a che connessione si riferisce 
    .LockType = adLockOptimistic ' imposta il tipo di lock 
    End With 
    
    With Rs1 
    .ActiveConnection = Cn ' imposta a che connessione si riferisce 
    .LockType = adLockOptimistic ' imposta il tipo di lock 
    End With   
    
    End Sub
    Php4ever!

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Comunque ti consiglio di creare una stringa di connessione che ti consenta di non ripetere ogni volta tutto il codice necessario per connettersi al DB. Ti posto un esempio che potrai modificare a tuo piacimento:
    In un Modulo bas scrivi:
    codice:
    Option Explicit
    Public DataConnessione As String
    
    'Connessione per salvare  e caricare i dati:
    Public Sub DataConnessione2()
        DataConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\FaTa10.mdb;Persist Security Info=False;"
    End Sub
    Nel Modulo della Form o in un diverso modulo bas, scrivi:
    codice:
    Dim dblPinv1 As Double, dblPinv2 As Double, ....
    
    Dim ConPF As New ADODB.Connection   
    Dim RSTpfi As New ADODB.Recordset 
    
    Esegue la connessione con il DataBase:
            With ConPF
                .ConnectionString = DataConnessione
                .CommandTimeout = 15
                .Open
            End With
        
        RSTpfi.Source = "SELECT Descrizione, Anno1, Anno2, Anno3, Anno4, Anno5, Totale FROM TblProva;"
        RSTpfi.Open , ConPF, adOpenDynamic
    
        RSTpfi.Move (18)
        dblPinv1 = RSTpfi("Anno1")
        dblPinv2 = RSTpfi("Anno2")
        dblPinv3 = RSTpfi("Anno3")
        dblPinv4 = RSTpfi("Anno4")
        dblPinv5 = RSTpfi("Anno5")
        dblPinv6 = RSTpfi("Totale")
    
    'Chiude e cancella il recordSet:
             RSTpfi.Close
             Set RSTpfi = Nothing
    'Chiude e cancella la connessione:
            ConPF.Close
            Set ConPF = Nothing
    LM

  5. #5
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    linguaggio?
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nč quando nč da dove,
    t'amo direttamente senza problemi nč orgoglio:
    cosė ti amo perchč non so amare altrimenti

  6. #6
    Ooops [VB6] scusate

    C'ho fatto caso al 61esimo minuto


    Php4ever!

  7. #7
    LMONDI
    Comunque ti consiglio di creare una stringa di connessione che ti consenta di non ripetere ogni volta tutto il codice necessario per connettersi al DB. Ti posto un esempio che potrai modificare a tuo piacimento:
    In un Modulo bas scrivi:

    Option Explicit
    Public DataConnessione As String

    'Connessione per salvare e caricare i dati:
    Public Sub DataConnessione2()
    DataConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\FaTa10.mdb;Persist Security Info=False;"
    End Sub
    Difatti era giā su un modulo Bas solo che andavo a creare la seconda Rs (RS1) sul form

    Questa č La MIa....
    Option Explicit

    Public Cn As New ADODB.Connection
    Public Rs As New ADODB.Recordset
    Public Rs1 As New ADODB.Recordset
    Public Rs2 As New ADODB.Recordset


    Sub connetti()
    With Cn
    .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
    "Data source =Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VB6ordprova\ordini.mdb;Persist Security Info=False "

    'nella prima riga si specifica il provider
    'nella seconda il percorso al db
    .ConnectionTimeout = 5 'numero dei secondi di timeout
    .CursorLocation = adUseClient 'tipo di cursore
    .Mode = adModeShareDenyNone 'nessuna limitazione
    .Open 'apertura ricordarsi di chiuderla
    End With
    With Rs
    .ActiveConnection = Cn ' imposta a che connessione si riferisce
    .LockType = adLockOptimistic ' imposta il tipo di lock
    End With

    With Rs1
    .ActiveConnection = Cn ' imposta a che connessione si riferisce
    .LockType = adLockOptimistic ' imposta il tipo di lock
    End With
    With Rs2
    .ActiveConnection = Cn ' imposta a che connessione si riferisce
    .LockType = adLockOptimistic ' imposta il tipo di lock
    End With

    End Sub

    Cmq riguardando quella che mi hai inviato penso di cambiare il percorso di accesso in Source=" & App.Path & " per evitare i noti problemi di Path dopo l' installazione

    Cmq Grazie LMONDI sei sempre un aiuto valido e scrupoloso

    Php4ever!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.