Newsgroup: it.comp.lang.visual-basic
Titolo: Aprire un database

Un saluto a tutti i frequentatori del Ng.
Ho un piccolo problema, non ho capito come debbo fare per aprire un DB, in
formato mdb (creato con access per intenderci). In particolare io voglio
aprire il Db e poi leggere un determinato valore da una tabella
(naturalmente per l'interrogazione utilizzero'  l'SQL).
Grazie a tutti
e.

 aprire il Db
Con DAO:
    Dim DB As Database
    Set DB=OpenDatabase("Archivio.mdb")
Se vuoi aprire una tabella:
    Dim RS As Recordset
    Set RS=DB.Openrecordset("Tabella")
ADO non lo sto ancora usando mi manca VB6 :((((
Ciao
Fabio


 (naturalmente per l'interrogazione utilizzero'  l'SQL).
hai due soluzioni, ma ne esistono anche altre 1000 :)
la prima è DAO: più semplice ma non più supportato da MS
aggiungi ai riferimenti (progetto -> riferimenti) la voce
Microsoft DAO 3.xx e poi utilizza un codice del genere
Dim DB as DAO.Database
Dim RS as DAO.RecordSet
Set DB = OpenDatabase("c:\.... miodb.mdb")
Set RS = DB.OpenRecordSet("nometabella")
... tuo codice..
RS.Fields("NomeCampo").Value per leggere il valore dalla tabella
RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing
L'altra soluzione consiste nell'utilizzare ADO, simile a DAO ma
diverso strutturalmente.
Sempre da riferimenti aggiungi Microsoft ActiveX Data Objects 2.xx
e poi un codice molto simile:
Dim CONN as ADODB.Connection
Dim RS as ADODB.RecordSet
Set CONN = New ADODB.Connection
CONN.Open "Provider=MSDASQL; Driver=MS Access; " & _
 "DQB=c:\...miodb.mdb"
Set RS = DB.OpenRecordSet("nometabella")
... tuo codice..
RS.Fields("NomeCampo").Value per leggere il valore dalla tabella
RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing
trovi un esempio sul mio sito:
http://vbsimple.virtualave.net/activity/act_04.htm
oppure sul sito comune 
http://www.it-lang-vb.net
Cya
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud

 Fabio
In vb6 pero' se inserisco questo codice e mando in esecuzione si blocca
nella prima riga "dim db as database" e mi appare una msgbox :
Compile error
User-defined type not defined
La cosa piu' strana e che aprendo un progetto scaricato dalla rete dopo aver
verificato il codice (la prima parte e' uguale) per capire qualcosa in piu',
se l'avvio parte tranquillamente........molto strano la stessa riga di
codice in un form nuovo da errore.
Vb6 prevede l'utilizzo ancora di questo tipo di codice ? O bisogna
utilizzare per forza ADO (che mi sembra molto piu' complesso)?
Sinceramente cmq ho notato che dichiarando una variabile nella finestrella
che appare esistono varie possibilita'....integer, data, ecc,....ma
"database" non e' riportata!!
Insomma gia' l'argomento mi e' sembrato "duro" pero' ora ci ho capito ancora
meno. Sinceramente stavo creando l'applicazione per il codice
fiscale.....l'algoritmo e' tutto pronto debbo leggere solo il codice del
comune dal db, ma non mi sa che mi son perso.
Se puoi aiutarmi (non a leggere il db ma a capire come bisogna comportarsi
con i db), magari in email per evitare di incasinare il ng!!!!
Ciao e grazie indipendentemente dalla tua decisione di aiutarmi o meno.
e.
Ps:
L'invito di aiuto e' valido anche per gli altri ;-))

 User-defined type not defined
te l'ho spiegato io nel messaggio sotto
devi aggiungere DAO da progetto->riferimenti


...........
ok grazie ho finalmente ottenuto quello che desideravo.
Se permetti volevo chiederti un'ultima cosa a riguardo:
In VB e' avviare una query che contiene come "condizione" un parametro
passato da una procedura?
A tal proposito In access e' possibile inserire in una casella di testo un
valore ed avviare una query utilizzando come condizione di selezione detto
valore.
In pratica vorrei che l'utente inserisse un valore in una casella di testo
del form in vb, tale valore fosse passato ad una procedura e che poi fosse
usato come condizione per selezionare un campo.
Io ho fatto:
private sub nome_procedura (mio_parametro as string)
..........mio_codice (scritto finalmente grazie al tuo aiuto)
Set RS = DB.OpenRecordset("select * from mia_tabella  where mio_campo=
mio_parametro ")
Naturalmente non funziona (perche' non so come fornire mio_parametro se lo
racchiudo tra apici infatti perdo il parametro passato e diventa una stringa
"mio_parametro" che non ha senso).
Grazie ancora per la pazienza e per il grande aiuto
ciao
e.

..........mio_codice (scritto finalmente grazie al tuo aiuto)
Set RS = DB.OpenRecordset("select * from mia_tabella  where mio_campo=
mio_parametro ")
Io scriverei così:
..........mio_codice (scritto finalmente grazie al tuo aiuto)
Set RS = DB.OpenRecordset("select * from mia_tabella  where mio_campo= '" &
_              mio_parametro & "'")
oppure utilizzi chr(34) prima e dopo il tuo Par, sempre che non sia un
valore numerico, in tal caso non serve nulla, se è una data utilizza "#".
Ciao Alex.
-- 
Posted from [212.141.54.103] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 e.
se il campo che devi inserire e di tipo testo prova cosi...
Set RS = DB.OpenRecordset("select * from mia_tabella  where mio_campo='" +
Text1 + "'")
seno..
Set RS = DB.OpenRecordset("select * from mia_tabella  where mio_campo=" +
cstr(Text1))
bye