View Full Version : Database con VB 6
Salve a tutti, mi sono avvicinato da poco al mondo del visual basic e avrei bisogno di qualche aiutino.
Qualcuno mi potrebbe dire come inserire una funzione di ricerca all'interno di un database da me creato.
Il database va bene, ma non riesco ad inserire qualche funzione per effettuare la ricerca a seconda dei campi, cioè dovrei poter trovare una parola scegliendo il campo in cui cercarlo.
Ringrazio tutti quelli che mi potranno essere d'aiuto.
RaouL_BennetH
16-01-2005, 18:21
Che metodo utilizzi per aprire il database, DAO o ADO?
E inoltre, il database che db è? access? mysql?
io uso un file di access per il database
per quanto riguarda il tipo di database, non so cosa significa ado o dao. se mi puoi spiegare cosa significa per favore?
RaouL_BennetH
16-01-2005, 18:47
Originariamente inviato da komet
io uso un file di access per il database
per quanto riguarda il tipo di database, non so cosa significa ado o dao. se mi puoi spiegare cosa significa per favore?
ok, ma prima potresti dirmi come effettui la connessione al tuo database access?
allora io ho il database in access, e uso un controllo data per collegarmi al database e visualizzo i dati in textbox.
In ogni caso mi potresti indicare dove posso trovare qualche guida alla programmazione di database con visual basic?
Grazie infinite
Ho fatto come mi avete detto, ma da dove mi avete indicato non c'era niente riferito alla funzione cerca all'interno di un database.
Qualcuno mi potrebbe indicare dove trovare una guida a visual basic dove spiega come inserire la funzione cerca all'interno di un database facendo si da poter scegliere in quale campo effettuare la ricerca.
Grazie mille
Nessuno può aiutarmi a risolvere il mio quesito?
RaouL_BennetH
21-01-2005, 11:08
Ciao, allora, io posso dirti il metodo che uso io per connettermi ad un database, leggere, modificare, cancellare dati e ricercarli.
supponiamo che il mio progetto sia in c:\prove\
mi creo stesso li dentro il database access che chiamerò ad esempio:
prova.mdb.
Ora, da Visual Basic, scelgo:
Progetto - Componenti - Microsoft ActiveX Data Object 2.7 (che è quella che ho io, la tua potrebbe essere la stessa o differire nella versione, 2.6 per esempio).
Questo mi consentirà di usare ADO per la connessione al mio database, in questa maniera:
Option Explicit
Dim cn As ADODB.Connection ' cn è un nome arbitrario
Dim rs As ADODB.Recordset 'rs è un nome arbitrario
Dim cerca As String 'variabile di nome cerca di tipo String
Private Sub Form_Load()
'comincio a settare i parametri per la connessione
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
'connessione al database:
cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Datasource=" & App.Path & "\prova.mdb"
cn.Open
'ora sono connesso al mio database prova.mdb
'supponiamo che abbia un pulsante di comando di nome cerca
'e che sul form abbia una casella di testo dove inserire il nome da cercare
'e una flexgrid dove visualizzare i dati, farò:
Private Sub cerca_click()
cerca = ""
cerca = cerca & "SELECT Cognome" & VbCrlf ' dico di selezionare tutti i record Cognome"
cerca = cerca & "FROM tabella_database" & VbCrlf 'dalla specifica tabella
cerca = cerca & "WHERE Cognome LIKE ' " text1.Text " '
'dove il cognome è uguale a quello scritto nella casella di testo
set rs = cn.Execute(cerca) 'gli dico di eseguire quanto sopra
while not (rs.EOF) 'fin quando non arrivo alla fine del file
flexgrid.additem rs("Cognome")
'dico alla flex grid di aggiungere a video il cognome che ho cercato
rs.movenext
'dico di spostarsi sul prossimo record
Wend 'fine while
E' chiaro che questo è un esempio da ampliare e ottimizzare, magari aggiungendo controlli in caso il termine ricercato non ci sia, di farti restituire un messaggio che dica "Nessun record trovato".
Ma spero che renda l'idea :)
Ti ringrazio pe tutto ciò che mi hai detto e mi scuso per il ritardo con cui mi sono fatto sentire, ma non mi potevo collegare ad internet perchè ho cambiato il mio abbonamento e mi sono trovato un periodo senza collegamento.
Ti ringrazio ancora e ti volevo chiedere se mi puoi indicare un sito o una guida su tutto quello che mi hai detto e sulla realizzazione di database con visual basic.
Grazie ancora
Ciao scusami se ti assillo, ma mi da un errore su questa stringa.
set rs = cn.Execute(cerca)
Potresti dare un'occhiata per favore.
Grazie e scusami ancora per il disturbo
Controlla bene la tua query contenuta dentro la variabiel "cerca" ... perchè molto probabilmente è sbagliata :)
RaouL_BennetH
08-02-2005, 13:15
Originariamente inviato da komet
Ciao scusami se ti assillo, ma mi da un errore su questa stringa.
set rs = cn.Execute(cerca)
Potresti dare un'occhiata per favore.
Grazie e scusami ancora per il disturbo
potresti provare a postare il codice, così magari ci si può rendere conto meglio ;)
vi posto il codice della mia applicazione.
Option Explicit
Dim cn As ADODB.Connection 'cn è un nome arbitrario
Dim rs As ADODB.Recordset 'rs è un nome arbitrario
Dim cerca As String 'variabile di nome cerca di tipo String
Private Sub frm_database()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Datasource=" & App.Path & "\bambini.mdb"
cn.Open
End Sub
Private Sub cmd_ricerca_Click()
cerca = ""
cerca = cerca & "SELECT Cognome" & vbCrLf
cerca = cerca & "FROM bambini" & vbCrLf
cerca = cerca & "WHERE Cognome LIKE ' " & txt_ricerca.Text '
Set rs = cn.Execute(cerca)
While Not (rs.EOF)
flexgrid.AddItem rs("Cognome")
rs.MoveNext
Wend 'fine while
End Sub
Mi potete aiutare per favore.
Grazie a tutti
L'errore è qui, questa è la correzione:
cerca = cerca & "WHERE Cognome LIKE '" & txt_ricerca.Text & "'"
Il problema me lo da ancora e nello stesso punto, cioè qui
set rs = cn.Execute(cerca)
mi aiutate per favore?
Grazie a tutti
Prova a dire almeno l'errore... :)
La query con l'aggiunta che ti ho detto io funziona, l'unica cosa è che metti degli apostrofi, è possibile?
Cmq è meglio che dici che errore ti da ;)
mi da il seguente errore
Errore di run-time '91':
Variabile oggetto o variabile del blocco With non impostato
Cliccando su debug, mi si posiziona automaticamente sulla stringa che ho detto in precedenza.
Ciao e grazie ancora
Ma tu dove richiami questa sub? frm_database()
Nella load della form?
E cmq ti conviene chiamarla senza il frm_ davanti al nome, perchè così fai solo confusione!
non ho capito bene cosa vuoi dire, ma se ti riferisci alla barra che c'è sopra, allora li ho selezionato la voce "generale", e comunque non gira.
In caso non è quello, allora non so a cosa ti riferisci.
Grazie ancora.
Zippa e metti qui il tuo progetto con il database, così ci posso dare un occhiata ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.