Connessione ado a piu tabelle con stringa sql

giovedì 02 novembre 2006 - 19.22

giuseppe66 Profilo | Newbie

Salve a tutti

Sono nuovo utente di questo forum, e non ne conosco i
meccanismi e l'efficacia stessa.

Sarei grato a chi mi risolvesse uno dei problemi che ho in VB6, dal momento che sono alle prime armi e per lo più autodidatta.

Sto cercando di creare una piccola applicazione per il lavoro,
in VB6, e dovrei effettuare delle connessioni in ADO a un database con estensione .mdb .

Ho, quindi, un database in Access(.mdb)"BENIDICONSUMO"(nome del datatabase)che tra le altre contiene le seguenti 2 tabelle :

1)tblbenidiconsumo con i seguenti campi:"ID","BENEDICONSUMO","PREZZOUNITARIO","CATEGORIA"
2)tblcategorie con i seguenti campi:"ID","CATEGORIA"
e preciso che il campo ID della tabella 'tblcategorie' è in relazione uno a molti con il campo CATEGORIA della tabella
'tblbenidiconsumo'.

Il mio problema è:
dovrei visualizzare in una form,in particolare in un Datagrid, una query
del database al quale sono connesso, con i seguenti campi :"ID","BENEDICONSUMO","PREZZOUNITARIO", tutti della tabella tblbenidiconsumo
e "CATEGORIA" della tabella tblcategorie

USO IL SEGUENTE CODICE:

in un modulo,definisco le seguenti variabili:

Public Connessione As ADODB.Connection
Public rsRecordset As ADODB.Recordset
Public strSQL As String

'POI CREO LA VARIABILE GENERALE 'congen'COSI':

Public Sub ConGen(Tabella As String, Adodc As Adodc, Archivio As String)
'### Connessione Archivio Dati ###
Set Connessione = New ADODB.Connection
Set rsRecordset = New ADODB.Recordset
Connessione.ConnectionString = "provider = microsoft.jet.oledb.4.0; " _
& " data source = " & App.Path & "\" & Archivio & ".mdb"
Connessione.Open
'(inserisco qui la variabilestringa strSQL!!!!!!!!!).......................
rsRecordset.CursorLocation = adUseClient
rsRecordset.Open strSQL, Connessione, adOpenDynamic, adLockPessimistic
Set Adodc.Recordset = rsRecordset
End Sub

LA MIA DOMANDA E':

Dopo aperto la connessione,qual'è la variabile stringa strSQL ?

dal momento che mi dà sempre errore qual'è la stringa esatta?
Io uso questa stringa:
strSQL = " SELECT ID,BENEDICONSUMO,PREZZOUNITARIO,tblcategorie.ID " & _
"FROM tblcategorie " & _
"INNER JOIN tblbenidiconsumo ON" & _
"tblcategorie.ID = tblbenidiconsumo.CATEGORIA"


GRAZIE MILLE, ASPETTO UN HELP

giuseppe66

Seyen Profilo | Newbie

Ti dò un consiglio di praticità.
Se usi l'access per gestire il DB utilizza la creazione di Query grafico dell'access stesso. Quindi guardati la chiamata sql che crea per la query selezionata....e vai di copia ed incolla nella stringa

Io quando devo gestire e creare chiamte sql complesse prima le provo e testo su Access stesso, ed evntualmente una volta copiate faccio magari le dovute modifiche, o gli inserimenti delle varibili per le clausole WHERE

giuseppe66 Profilo | Newbie

Grazie
Si, infatti, così faccio anch'io
la mia stringa SQL l'ho ottenutadal generatore SQL della query di access,

ma una cosa non mi è chiara..........

devo creare due recordset? una per ogni tabella?
ed aprirli entrambi?
giuseppe66

StefanoLep Profilo | Senior Member

Ciao, ogni recordset che apri punta ad una tabella o una query a seconda di ciò che hai indicato nella variabile StrSQL, la connessione può (e di solito è così) essere una sola ed essere utilizzata per aprie tutti i recordset che ti servono. Per tornare alla tua domanda: se vuoi operare su due tabelle contemporaneamente devi utilizzare due recordset.

giuseppe66 Profilo | Newbie

Dal momento che devo operare contemporaneamente su due tabelle, provo a crearmi e aprire due recordset e ti farò sapere come è andata.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5