PDA

Visualizza la versione completa : [VB6] connettermi a db access, come?


Delas
19-09-2002, 20:20
ciao raga, mi devo connettere ad un db access, come faccio? vorrei usare qualcosa tipo una datagrid per vedere alcuni campi e, in un'altro form, vedere il record selezionato nel datagrid...

andiamo con ordine: come faccio a connettermi e stampare tutto su una griglia?

MissRachele
19-09-2002, 23:31
ecco, è questo che cerchi?

----------------------------------------------
una volta che hai creato il DB:
1 vai in pannello di controllo
2 vai in ODBC
3 clicca su aggiungi(add...)
4 si apre una finestra con un elenco di driver.Devi selezionare con
doppio click su microsoft Access Driver(*.mdb)
5 La nuova finestra che si apre ti permette di selezionare il DB e
configurarlo aggiungendolo all'elenco dei DSN.prima di tutto seleziona
il DB cliccando su Seleziona(select...).Sfoglia finchè non trovi il DB.
Una volta trovato, esegui con doppio click.Vedrai che sopra alle opzioni
della finestra ora è indicato il percorso del DB.L'ultima operazione
prima di dare l'OK è indicare il nome del DB.La descrizione è facoltativa.
N.B. è consigliabile dare lo stesso nome del DB per fini pratici.
6 Una volta cliccato su OK vedrai che nella prima finestra dell'ODBC è
stato aggiunto il tuo DB.
-----------------
ora vai in Visual Basic.
visto che tu hai la versione italiana spero di tradurre in maniera esatta
i comandi....anche se poi non è così difficile.

A Prima di tutto devi aggiungere al progetto una origine/ambiente dati(data environment)
non so la traduzione esatta ma dovrebbe essere la penultima voce della
tendina Aggiungi del progetto.
B Ora clicca 2 volte sul nuovo oggetto che hai creato.Ti si apre una finestra
che indica l'origine dati e al di sotto una Connessione.
C Selezionando la connessione,col tasto destro del mouse appare una tendina
Devi selezionare 'Proprietà'.
D In questa nuova finestra che contiene tutti i provider devi selezionare
Microsoft OLE DB provider per ODBC drivers.dopodivhè ti si apre una
finestra dove devi indicare il DB a cui fai riferimento.
E Metti la spunta sulla prima opzione '1-usa nome origine dati'(dovrebbe
essere già impostata di default).Se provi a cliccare sulla freccetta verso il basso noterai
che si apre una lista da cui dovrai selezionare il tuo DB.
Poi seleziona il percorso del DB cliccando sulla freccetta dell'ultima
opzione.
F Una volta selezionato il tuo DB clicca su Avanzate e seleziona 'Lettura/Scrittura' e poi verifica
la avvenuta connessione cliccando su 'test connessione'
G Ora puo usare il DB. Chiaramente dovrai aggiungere dei Command,etc,etc...
------------------------------------------------------------

per aggiungere un campo del db al datagrid:

datagrid.row = 1
datagrid.Col = 1
datagrid.Text = nomeRecordSet!nome_campo
datagrid.Col = 2
datagrid.Text = nomeRecordSet!nome_campo

datagrid.row = 2
datagrid.Col = 1
datagrid.Text = nomeRecordSet!nome_campo
datagrid.Col = 2
datagrid.Text = nomeRecordSet!nome_campo


fammi sapere

Delas
20-09-2002, 00:46
grazie millllllllle! sei stato preziosissimo! solo alcune cose...
[list=1]
Quando dovrò distribuire il pacchetto, come farò a fare la connessione..? :(
Il nome del recordset, per default è connection1? Altrimenti come faccio a farlo?
[/list=1]
grazie!

Delas
20-09-2002, 14:36
uppo.
:)

MissRachele
21-09-2002, 02:50
Dim StaRecordSet As Recordset

Set Connescio = New ADODB.Connection
Set Comando = New ADODB.Command

Connescio.ConnectionString = "DSN=nome_database.mdb;DBQ=" &_
App.Path & "\database.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5;UID=admin;"
Connescio.Open
Comando.ActiveConnection = Connescio
Comando.CommandType = adCmdText

Connescio e comando le devi dchiarare Public in un modulo.
App.path è la directory dell'applicazione


-----------------------------------------------------------------
Private Sub Form_Load()
Dim tuo_recordset As Recordset

Set tuo_recordset = New ADODB.Recordset
tuo_recordset.CursorType = adOpenKeyset
tuo_recordset.LockType = adLockOptimistic

tuo_recordset.Open "SELECT * FROM tabella WHERE Cod = 1",
Connescio2, , , adCmdText


label1.caption = tuo_recordset!tuo_campo
------------------------------------------------------------------
sono stata chiara? fammi sapere........
a propoposito, semmai sono statA preziosissimA!!!!!

Delas
23-09-2002, 16:11
:(
non riesco, sbaglio qualcosa, non è che hai un semplice esempio da mandarmi...? te ne sarei super-gratA.

ah, scusa, pensavo fossi un maschietto...
:stordita:

Delas
23-09-2002, 17:53
col tuo metodo non sono riuscito, allora ho provato così: in un modulo:


Sub Connetti()

Dim miaConn As ADODB.Connection
Dim mioSet As ADODB.Recordset
Dim miaStringaConn As String

percorsoDb = App.Path & "\sgp97.mdb"
miaStringaConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
miaStringaConn = miaStringaConn & "Data Source="
miaStringaConn = miaStringaConn & percorsoDb
miaStringaConn = miaStringaConn & ";Persist Security Info=False"

Set miaConn = New ADODB.Connection
Set mioSet = New ADODB.Recordset

miaConn.ConnectionString = miaStringaConn

End Sub

nell'evento form_load:


Connetti

Set objRS = New ADODB.Recordset
objRS.CursorType = adOpenKeyset
objRS.LockType = adLockOptimistic

objRS.Open "SELECT * FROM famiglie ORDER BY famiglie.famiglia", _
miaConn, , , adCmdText

ma mi da quest'errore: "errore di run-time 3001. gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto."

MissRachele
23-09-2002, 20:06
il tuo metodo non lo conosco, ma con il mio funziona (ho fatto copia incolla......)

Delas
23-09-2002, 22:31
allora potresti spiegarmi un po' la seconda parte... non mi funzionava...
:bhò:

MissRachele
23-09-2002, 23:28
prova così (penultima riga del code originario) (quando vai a capo devi mettere &_ oppure scrivilo nella solita riga: meglio)

tuo_recordset.Open "SELECT * FROM tabella WHERE Cod = 1", &_
Connescio2, , , adCmdText

Loading