PDA

View Full Version : [VB6-Access] Controllo dati già inseriti


RaouL_BennetH
06-03-2005, 13:45
Premessa: connessione al DB con ADO

Problema: vorrei controllare che un nome che inserisco in una textbox, se già presente nel db me lo segnali.

ho questo codice:



ver = ver & "SELECT Codice FROM tblCode" & vbCrLf
set rs = cn.Execute(ver)

if txtCodice.Text = rs("Codice") Then

msgbox "Codice già in memoria!", vbOkOnly

Else

ver = ver & "INSERT INTO tblCode(Codice)" & vbCrLf
ver = ver & "VALUES('" & txtCodice.Text & "')" & vbCrLf
Set rs = cn.Execute(ver)

End If



Ma ottengo come errore un bel Runtime 3021 :(

matpez
06-03-2005, 19:58
Io metterei una WHERE dove passi appunto il valore contenuto nella textbox, a quel punto controlli che il recordset contenga un valore, se lo contiene allora hai un doppione, altrimenti lo inserisci!

Come hai fatto tu va bene, ma presuppone che il record sia il primo posto, altrimenti se la select te ne tira fuori più di uno nn riusci a fare quello che volevi fare tu :)

Per controllare che il recordset abbia un valore basta che metti: if not rs.eof then

RaouL_BennetH
06-03-2005, 20:03
Originariamente inviato da matpez
Io metterei una WHERE dove passi appunto il valore contenuto nella textbox, a quel punto controlli che il recordset contenga un valore, se lo contiene allora hai un doppione, altrimenti lo inserisci!

Come hai fatto tu va bene, ma presuppone che il record sia il primo posto, altrimenti se la select te ne tira fuori più di uno nn riusci a fare quello che volevi fare tu :)

Per controllare che il recordset abbia un valore basta che metti: if not rs.eof then

Grazie :)

Non credo di aver capito molto bene però....



if not rs.EOF Then

ver = ver & "SELECT Codice FROM tblCode" & vbCrLf
ver = ver & "WHERE Codice LIKE ' " & txtCodice.Text & "' " & vbcrlf
set rs = cn.Execute(ver)

if txtCodice.Text = rs("Codice") Then

msgbox "Codice già in memoria!", vbOkOnly

Else

ver = ver & "INSERT INTO tblCode(Codice)" & vbCrLf
ver = ver & "VALUES('" & txtCodice.Text & "')" & vbCrLf
Set rs = cn.Execute(ver)

End If
End If


Posso provare così?

Thx. RaouL.

RaouL_BennetH
06-03-2005, 20:52
ok, era un pò più semplice:



ver = ver & "SELECT Codice FROM tblCode" & vbCrLf
ver = ver & "WHERE Codice LIKE ' " & txtCodice.Text & "' " & vbcrlf
set rs = cn.Execute(ver)

If not rs.EOF then
msgbox "Codice già in memoria!!", vbCritical

else

ver = ver & "INSERT INTO tblCode(Codice)" & vbCrLf
ver = ver & "VALUES('" & txtCodice.Text & "')" & vbCrLf
Set rs = cn.Execute(ver)

End If




Grazie mille Matpez :)

matpez
06-03-2005, 22:54
Prego :p