Associare ad una variabile il valore di un campo

mercoledì 06 ottobre 2010 - 16.49
Tag Elenco Tags  Access (.mdb)  |  Office 2007  |  VBScript

lucaco Profilo | Newbie

Buongiorno a tutti!
Ecco a voi il mio quesito:

Sto facendo una maschera in cui ho implementato il controllo, qui sotto riportato, sul Campo2 che verifica l'esistenza di una doppione e mi avvisa tramite un MsgBox


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Vorrei inserire una variabile che mi indica su quale ID è già presente il duplicato e quindi riportare il valore nel MsgBox

Spero di essere stato chiaro.

Un cordiale saluto a tutti!!!

alx_81 Profilo | Guru

>Buongiorno a tutti!
Ciao e benvenuto su dotnethell.it!

>Vorrei inserire una variabile che mi indica su quale ID è già
>presente il duplicato e quindi riportare il valore nel MsgBox
che ne dici invece di cambiare approccio? Potresti trasformare la query in:

SELECT ID FROM anag1 WHERE Campo2='" & Me!Campo2 & "'"

Per controllare se ci sono "doppioni" basta che controlli Rs.RecordCount (fai il recordset lato client, altrimenti vale sempre -1).
Se questo valore è maggiore di 1 allora sei sicuro che QUEGLI ID (non esiste solo un doppione ) hanno campo2 n-uplo..
per ogni record del recordset, vai a creare una stringa ad esempio che è la lista degli id soggetti a doppione..
che ne dici?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

lucaco Profilo | Newbie

Dopo qualche "aiutino" qua e la ecco la mia soluzione:

Private Sub Campo2_BeforeUpdate(Cancel As Integer)

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String

Set db = CurrentDb

strSQL = "SELECT Id FROM anag1" & _
" WHERE Campo2='" & Me!ddCampo2 & "'"

Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

If Not rs.BOF Then
Response = MsgBox("Attenzione!!! il " & vbCrLf & _
"il valore ==> " & Me!Campo2 & " <== è già presente" & vbCrLf & _
"per il record ==> " & rs!ID & vbCrLf & "Forzare inserimento?", vbYesNo + vbCritical + vbDefaultButton2, "!!! AVVISO !!!")
If Response = vbYes Then
Cancel = False
Else
Cancel = True
End If
End If


Ho aggiunto anche la forzatura di inserimento nel caso di doppione!

che ne dici?

alx_81 Profilo | Guru

>che ne dici?
ma sei sicuro che capisci che è un doppione? In questo modo non è che ne basta uno per scatenare un erroneo messaggio di "elemento duplicato"?

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5