Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti, stò creando un programma come per la gestione di una videoteca (il tipico programma per far pratica) e non riesco a cercare nel database. Scendo subito nel codice, ecco quello che utilizzo per connettermi al database:
La connessione e l' inserimento dei dati avviene con successo.
Ora, stò creando un' altra form con 3 textbox (TxtCerca e TxtAutore, TxtAnno) e 1 pulsante (CmdCerca).
Vorrei inserire il titolo nel TxtCerca, premere il CmdCerca e vedere nel TxtAutore e TxtAnno, l' autore e l' anno del film cercato (tramite il nome). Non ho idea di come fare, potreste aiutarmi?
Ciao Turi,
prima di tutto ti consiglio di fare la connessione con Il DB in un modulo bas con una variabile globale, in modo che apri la con. e rs quando ti serve e subito dopo chiudi tutto. Quindi in un modulo bas:
Poi, per brevità, utilizzo un frammento di codice di un prog. già predisposto, che tu renderai compatibile con il tuo elaborato. La ricerca del cliente avviene prima per nome e cognome e poi per il solo cognome, nel caso in cui il nome non fosse registrato:
Quindi sempre in un modulo bas:
Codice sorgente - presumibilmente VB.NET
' Cerca i dati anagrafici di un cliente:
PublicSub CercaDatiCliente()
Dim Ogg5 AsNew ADODB.Command
Dim Cns5 AsNew ADODB.Connection
Dim RST5 AsNew ADODB.Recordset
Dim intDomCerca AsInteger
'Esegue la connessione con il DataBase TblAnagCliente (Tabella del DB):
With Cns5
.ConnectionString= DataConnessione 'Questa è la stringa di connessione del DB
.CursorLocation= adUseClient 'tipo di cursore
.Mode= adModeShareDenyNone 'nessuna limitazione
.CommandTimeout= 15
.Open
EndWith
' Controlla che il Cliente Sia inserito già nel BD:
' Selezione con il Nome e Cognome:
IfLen(sNomeCL) > 0 AndLen(sCognomrCL) > 0 Then
RST5.Source="SELECT Nome, Cognome FROM TblAnagCliente WHERE Nome='"&Replace(sNomeCL, "'", "''")&"' And Cognome='"&Replace(sCognomrCL, "'", "''")&"'"
RST5.Open , Cns5, adOpenDynamic, adLockOptimistic
' Selezione con il solo Cognome:
ElseIfLen(sNomeCL)= 0 AndLen(sCognomrCL) > 0 Then
RST5.Source="SELECT Nome, Cognome FROM TblAnagCliente WHERE Cognome='"&Replace(sCognomrCL, "'", "''")&"'"
&"non è ancora registrato, volete procedere alla registrazione?"&Chr(13) _
&"Click su OK per registrare, su Annulla per chiudere il modulo.", vbInformation + vbOKCancel, "....")
' Pulsante OK:
If intDomCerca = 1 Then
' Visualizza la FrmAnagCliente:
FrmAnagCliente.Show
EndIf
EndIf
'Chiude e cancella il recordSet:
If GetState(RST5.State)="adStateOpen"Then
RST5.Close
Set RST5 =Nothing
EndIf
'Chiude la connessione:
If GetState(Cns5.State)="adStateOpen"Then
Cns5.Close
Set Cns5 =Nothing
EndIf
EndSub
Come vedi è importante chiudere la connessione ed eliminare il rs in quanto utilizzano molte risorse e poi se non fai la procedura predetta quando esci dal prog. potrebbero sorgere difficoltà.
Spero che ti sia utile.
Ciao,
capisci che senza aver sotto mano il DB é difficile seguirti. Prova a mettere un punto d'interruzione su Public Sub DataConnessione2() in modo tale da seguire con F8 (passo a passo) tutta la procedura sino al punto d'errore; Visto che non apre la connessione forse c'é quancosa nella Sub predetta.
Ultima modifica effettuata da Louis il 11/07/2009 alle 13:21
MsgBox"Inserisci il titolo da cercare.", vbCritical, "ERRORE"
ElseIfLen(txtCerca.Text) > 0 Then
rs.Source="Select Titolo FROM Video WHERE Titolo='"&Replace(txtCerca.Text, "'", "''")&"'"
rs.Open , cn, adOpenDynamic, adLockOptimistic
EndIf
E' molto strano, a mio avviso non apri la connessione.
Per individuare il nome delle tabelle del DB ti consiglio di nominarle con Tbl, cioé TblVideo così é immediata la differenza tra i Nomi dei Campi e quelli delle Tbl.
Per quanto riguarda il non funzionamento della stringa di connessione hai provato a fare come ti ho detto per individuare l'errore ?
Ultima modifica effettuata da Louis il 11/07/2009 alle 20:53