Ciao a tutti!!!
Sono nuovo del Forum e dei forum di programmatori in genere. Questo perché non sono un programmatore, ma solo un autodidatta che a volte ha la necessità di sviluppare database Access per il facilitarsi il proprio lavoro di amministrativo.
Finora mi sono arrangiato solo con le Macro in quanto i miei "lavori" precedenti necessitavano solo di eseguire query attraverso maschere e/o costruire stampe a mezzo reports.
Ora mi sono imbarcato in un'impresa alquanto ardua perché il progetto prevede anche l'inserimento di dati e le sole macro non bastano più e quindi ho bisogno di usare codice VBA, cercando di essere moooolto minimale.
Finora per problemi vari ho risolto interrogando il vostro e altri siti di programmatori, riuscendo sempre a cavarmela.
Ora però ho un problema alquanto banale, perché si tratta di una funzione che ho utilizzato centinaia di volte, che però non riesco a risolvere.
Spiego:
in un pulsante, che mi deve cancellare un record in una maschera con sottomaschera (si tratta di testata preventivo con righe), all'evento Click ho inserito questo codice:
Private Sub Pulsante_Elimina_Click()
If (DCount("[ANNO_NUMERO_CONTRATTO]", "ANAGRAFICA_CONTRATTI", "[ANNO_NUMERO_CONTRATTO] = " & Me.ANNO_NUMERO_CONTRATTO)) > 0 Then
Beep
MsgBox "Il Preventivo che si è tentato di eliminare" & Chr(13) & vbLf _
& "è stato abbinato ad un Contratto!!!" & Chr(13) & vbLf _
& "Se sei sicuro, devi prima disabbinare o eliminare il Contratto.", vbExclamation, "IMPOSSIBILE CANCELLARE IL PREVENTIVO!!!"
Exit Sub
End If
If (DCount("[Cod_Unico_Numero_Prev]", "PREVENTIVI_Righe", "[Cod_Unico_Numero_Prev] = '" & Me.Cod_Unico_Numero_Prev & "'")) > 0 Then
Beep
MsgBox "Il Preventivo che si è tentato di eliminare" & Chr(13) & vbLf _
& "contiene delle Righe!!!" & Chr(13) & vbLf _
& "Se sei sicuro, devi prima eliminarle tutte e riprovare.", vbExclamation, "IMPOSSIBILE CANCELLARE IL PREVENTIVO!!!"
Exit Sub
End If
Continua....
End Sub
Sulla prima If mi dà <Errore di run-time '3075'> con il seguente testo di dettaglio:
Errore di sintassi (operatore mancante) nell'espressione della query '[ANNO_NUMERO_CONTRATTO] = '.
Eseguendo il Debug, si posiziona sulla riga della prima If.
Il campo ANNO_NUMERO_CONTRATTO nella tabella ANAGRAFICA_CONTRATTI è un campo
calcolato di tipo
intero lungo mentre il campo che si trova all'interno del controllo Me.ANNO_NUMERO_CONTRATTO è un campo
numerico di tipo
intero lungo.
La sintassi mi sembra giusta, anche se non ci metterei la mano sul fuoco.
Se escludo la prima If, la seconda funziona perfettamente.
Dove sbaglio?
Grazie per eventuali risposte.
Alex66