Condividi:        

[Access]Verificare se c'e' un valore in una tabella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Access]Verificare se c'e' un valore in una tabella

Postdi cassioli » 19/04/06 14:23

Come faccio in VBA a verificare se in un certo campo di una certa tabella c'e' un certo valore?
Se uso Dlookup, ho dei problemi:

Codice: Seleziona tutto
If DLookup("[cam]", "tab", "[cam]=" + "'" + dest + "'") <> dest Then
    [immetti valore]
Else
    [valore gia' presente]
End If


Se nel campo CAM della tabella TAB c'e' il valore contenuto in DEST, l'espressione DLookup("[cam]", "tab", "[cam]=" + "'" + dest + "'") restituisce il valore stesso, ossia una stringa; ma se il valore non c'e', restituisce il valore NULL; quindi in teoria il codice sopra è giusto.... invece no! Vado sempre a finire nell' "else"! :mmmh:

E non posso testare direttamente l'espressione, perche' il risultato puo' essere o una stringa o un null, che sono tipi diversi e quindi mi da' errore.

E allora???
Come faccio???? :?:
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Sponsor
 

Postdi archimede » 19/04/06 15:00

Non sono sicuro di capire: cerchi il campo CAM della tabella TAB di quale record?

Provo a suggerire
Codice: Seleziona tutto
If IsNull(DLookup("[cam]", "tab", "[CampoChiave]=" + mioID)) Then
HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi cassioli » 19/04/06 15:06

archimede ha scritto:Non sono sicuro di capire: cerchi il campo CAM della tabella TAB di quale record?

Provo a suggerire
Codice: Seleziona tutto
If IsNull(DLookup("[cam]", "tab", "[CampoChiave]=" + mioID)) Then
HTH.

Alessandro

Volevo sapere se c'e' quel valore in un record QUALUNQUE.
Forse ho trovato un modo alternativo:
Codice: Seleziona tutto
Dim dbs As Database, rst As Recordset
    Dim strCriteri As String

    ' Restituisce il riferimento al database corrente.
    Set dbs = CurrentDb
    ' Definisce i criteri di ricerca.
    strCriteri = "[cam] = '" + dest + "'"
    ' Crea un oggetto Recordset di tipo dynaset in base alla tabella tab.
    Set rst = dbs.OpenRecordset("tab", dbOpenDynaset)
    ' Trova il primo record corrispondente.
    rst.FindFirst strCriteri

' Controlla se il record è stato trovato.
    If rst.NoMatch Then
.........


Liberamente adattato dall'help di Access ;)

Cmq grazie per avermi spiegato come testare se una variabile vale NULL. ;)
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 19/04/06 15:13

cassioli ha scritto:Volevo sapere se c'e' quel valore in un record QUALUNQUE.
Ah, ok. Forse è più semplice:
Codice: Seleziona tutto
If DCount("*", "tab", "[cam]='" + dest + "'") = 0 Then
HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi cassioli » 21/04/06 11:26

e come faccio, invece, a leggere tutti i record uno per uno? Ho provato con findfirst "*" ma non va...
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 21/04/06 13:10

cassioli ha scritto:e come faccio, invece, a leggere tutti i record uno per uno?
Informazioni insufficienti: spiegati meglio.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Alexsandra » 21/04/06 13:14

Ti stavo per chiedere la stessa cosa anch'io. Vuoi associare la ricerca a un textbox in cui digiti il testo da cercare oppure vuoi scorrere tutti i record(ma manca il criterio di ricerca)
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi cassioli » 21/04/06 13:51

Volevo... semplicemente scorrere TUTTI i record, senza nessun criterio di ricerca particolare!
Ma ho risolto usando FindFirst/FindNext con criterio <>'' invece che ='*'.
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02


Torna a Applicazioni Office Windows


Topic correlati a "[Access]Verificare se c'e' un valore in una tabella":

BTp Valore
Autore: MarioLombardi
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 60 ospiti