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 :(
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 :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.