Newsgroup: it.comp.appl.access
Titolo: Messaggio per numero doppio

ciao a tutti
ho una tb con un campo mionumero
di tipo numerico
intero lungo
richiesto no
indicizzato no
 
ora vorrei pur permettendo di
inserire un numero già inserito
avere cmq un messaggio
di avviso p.e. "attenzione: numero già inserito!!!"
 
Grazie 
 
 

 ha scritto nel messaggio 
news:51df9b19$0$1380$4faf...@reader1.news.tin.it...

vorrei modificare questo criterio affinchè tenga conto dell' idcliente
In (SELECT [mioRiferimento] FROM [TbCarichi] As Tmp GROUP BY 
[mioRiferimento] HAVING Count(*)>1 )
grazie 
 
 

Piero ha scritto:

Potresti, sull'evento DopoAggiornamento della casella in cui inserisci il
"mionumero", scrivere:
If Not IsNull(DlookUp("[mionumero]","[TbCarichi]","[mionumero]=" &
Me!miacasella)) Then
Msgbox "attenzione: numero già inserito!!!"
End If
 
-- 
Riccardo Baldinotti
http://riccardobaldinotti.wordpress.com
 
http://rikky.netii.net
 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 ha scritto nel 
messaggio news:kroqt6$mid$1...@news.newsland.it...

grazie Riccardo
ottimo!!!
non ci avevo pensato 
 
 

Piero presented the following explanation :

Questa in BeforeUpdate della scheda
(per gli amanti del brivido...)
====================================
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim SQL As String, RS As Recordset
Dim TableName As String, FieldName As String
 
TableName = "t_Nomi"
FieldName = "Nome"
 
SQL = "SELECT " & TableName & "." & FieldName & ", "
SQL = SQL & "Count(" & TableName & "." & FieldName & ") "
SQL = SQL & "AS CountOfDups FROM " & TableName & " "
SQL = SQL & "GROUP BY " & TableName & "." & FieldName & " "
SQL = SQL & "HAVING (" & TableName & "." & FieldName
SQL = SQL & ")=[" & FieldName & "];"
Set RS = CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
 
If RS.RecordCount > 0 Then
    RS.MoveLast
    If MsgBox("Duplicazione nel campo " & FieldName & _
        " (" & RS!CountOfDups & " valori già esistenti)." & _
        vbCrLf & "Si conferma l'inserimento?", _
        vbYesNo + vbDefaultButton2) = vbNo Then
        Cancel = True: Undo
    End If
End If
 
End Sub
===========================================
 
Bruno
 
 

 ha scritto nel messaggio 
news:51e03fd9$0$1349$4faf...@reader2.news.tin.it...

Grazie Bruno
ci provo 
 
 

>
ciao Bruno
ho errore di sintassi (operatore mancante) nell'espressione della query 
'Fatture.numerofattura' 
 
 

 'Fatture.numerofattura'
 
Non so che dirti.
Io non ho alcun errore.
 
Bruno
 
 

 ha scritto nel messaggio 
news:51e7b50b$0$1368$4faf...@reader1.news.tin.it...

ciao Bruno
ho errore in questo punto


 ha scritto nel messaggio 
news:51e7dac9$0$1341$4faf...@reader2.news.tin.it...

può essere che ho errore perchè in FieldName io ho un numero
anzichè una stringa?
FieldName As String 
 
 

 ha scritto nel messaggio 
news:51e7e7a0$0$1340$4faf...@reader2.news.tin.it...

no, ho come tipo campo testo 
 
 

 ha scritto nel messaggio 
news:51e7e880$0$1330$4faf...@reader2.news.tin.it...

l'errore è perchè poi avevo messo uno spazio nella nome della tb,
ma cmq non va bene, perche' qualsiasi numero inserisco, risulta che esiste 
già 
 
 

 già
 
Prova con questa:
=====================================
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim SQL As String, RS As Recordset
Dim TableName As String, FieldName As String, VarTypeSeparator As 
String
 
TableName = "t_Nomi"
FieldName = "Codice"
 
SQL = "SELECT " & TableName & "." & FieldName & ", "
SQL = SQL & "Count(" & TableName & "." & FieldName & ") "
SQL = SQL & "AS CountOfDups FROM " & TableName & " "
SQL = SQL & "GROUP BY " & TableName & "." & FieldName & " "
SQL = SQL & "HAVING (" & TableName & "." & FieldName
 
Select Case VarType(Controls(FieldName))
    ' Text
    Case vbString
        SQL = SQL & ")='" & Controls(FieldName) & "';"
    ' Number
    Case vbInteger, vbLong, vbSingle, vbDouble, vbCurrency, vbBoolean, 
vbDecimal
        SQL = SQL & ")=" & Controls(FieldName) & ";"
    ' Date
    Case vbDate
        SQL = SQL & ")=#" & Format(Controls(FieldName), "mm/dd/yyyy") & 
"#;"
End Select
 
Set RS = CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
 
If RS.RecordCount > 0 Then
    RS.MoveLast
    If MsgBox("Duplicazione nel campo " & FieldName & _
        " (  [" & Controls(FieldName) & "]   " & RS!CountOfDups & " 
valori già esistenti)." & _
        vbCrLf & "Si conferma l'inserimento?", _
        vbYesNo + vbDefaultButton2) = vbNo Then
        Cancel = True: Undo
    End If
End If
 
End Sub
==============================================
 
Bruno
 
 

 ha scritto nel messaggio 
news:51e828e8$0$1376$4faf...@reader1.news.tin.it...

Ciao Bruno
questa funziona..