View Full Version : [vb6] ado e controllo record
RaouL_BennetH
08-12-2004, 14:47
Salve, la mia domanda è questa:
mi collego ad un db tramite ADO, e vorrei fare un controllo del genere quando inserisco un nuovo nominativo del db:
Se un campo particolare, è già memorizzato, come faccio a fargli fare il controllo in modo che mi dia una msgbox tipo "CODICE GIA' PRESENTE" ?
thx
RaouL.
RaouL_BennetH
08-12-2004, 15:02
Originariamente inviato da RaouL_BennetH
Salve, la mia domanda è questa:
mi collego ad un db tramite ADO, e vorrei fare un controllo del genere quando inserisco un nuovo nominativo del db:
Se un campo particolare, è già memorizzato, come faccio a fargli fare il controllo in modo che mi dia una msgbox tipo "CODICE GIA' PRESENTE" ?
thx
RaouL.
Come non detto :rolleyes:
Risolto mezzo secondo dopo averci pensato un "pò" più intensamente...
Sorry.
Metti il campo indicizzato con un vincolo di unicità...
RaouL_BennetH
10-12-2004, 11:20
Originariamente inviato da cionci
Metti il campo indicizzato con un vincolo di unicità...
Ecco....mettendo il campo indicizzato nel database, ho un bel pò di problemi:
'prima controllo che i dati inseriti non siano già presenti nel db
isql = ""
isql = isql & "SELECT Codice" & vbCrLf
isql = isql & "FROM tblanagrafica" & vbCrLf
Set rs = cn.Execute(isql)
If Val(txtCodice.Text) = rs("Codice") Then
MsgBox "Codice Scheda già Presente!", vbOKOnly
Else 'altrimenti, se non ci son problemi....
'aggiungo i dati scritti nel database
isql = ""
isql = isql & "INSERT INTO tblanagrafica(Cognome, Nome, Mansione, Codice)" & vbCrLf
isql = isql & "VALUES (' " & txtCognome.Text & " ', ' " & txtNome.Text & " ', ' " & Combo1.Text & " ', ' " & txtCodice.Text & " ' )" & vbCrLf
Set rs = cn.Execute(isql)
MsgBox "Dati Inseriti Correttamente!", vbOKOnly
txtCognome.Text = ""
txtNome.Text = ""
Combo1.Text = ""
txtCodice.Text = ""
End If
Però, in questo modo mi funziona solo se ho già almeno un record inserito :(
Se non c'è nessun record, mi da quest'errore:
Errore di run time '3021'
Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente
E quando vado a fare il debug, ovviamente mi porta qui:
If Val(txtCodice.Text) = rs("Codice") Then
Difatti, se non c'è nemmeno un record, come verifica quella condizione?
help :cry:
RaouL_BennetH
11-12-2004, 01:00
up :muro:
Fenomeno85
11-12-2004, 19:01
rs non assune qualche valore particolare quando non esiste il risultato dell'interrogazione?
~§~ Sempre E Solo Lei ~§~
Dopo l'esecuzione della query devi mettere:
If rs.EOF Then
'qui già sai che il codice non esiste
Else
'esegui il tuo codice precedente
RaouL_BennetH
11-12-2004, 19:26
Originariamente inviato da cionci
Dopo l'esecuzione della query devi mettere:
If rs.EOF Then
'qui già sai che il codice non esiste
Else
'esegui il tuo codice precedente
thx, cionci :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.