Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gafish
Bonjour,
Si tu pars dans l'optique d'une fonction qui renvoit true ou false, le plus simple c'est peut etre de passer en paramètre de ta fonction les deux noms de champs et les deux valeurs, tu fais un recordset basé sur une requête avec ces quatre paramètres, et tu regardes si le recordcount est supérieur à 0. Si oui tu renvois true. Par exemple (non testé) :
function TstPresence (Champ1 as string, Val1 as string, Champ2 as string, Val2 as string) as boolean
dim dbscurrent as database set dbscurrent = opendatabase(currentdb.name) dim rstTst as recordset set rstTst = dbscurrent.openrecordset("SELECT * FROM [TaTable] WHERE " & Champ1 & "=" & Val1 & " AND " & Champ2 & "=" & Val2 & ";") If rstTst.recordcount > 0 then TstPresence = True Else TstPresence = False End If
set rstTst = nothing set dbscurrent = nothing
end function
Pense juste à mettre des ' si tes champs sont de type texte.
Arnaud
"Erwan" a écrit dans le message de news:3ded01c49fec$79341090$ Bonjour
Quel est le moyen le plus efficace de tester en VBA s'il existe un enregitrement dont le champs1 à la valeur1 ET le champs2 à la valeur2?
(Une fonction qui recrache simplement true or false me suffit largement)
Merci d'avance
Bonjour,
Si tu pars dans l'optique d'une fonction qui renvoit true ou false, le plus
simple c'est peut etre de passer en paramètre de ta fonction les deux noms
de champs et les deux valeurs, tu fais un recordset basé sur une requête
avec ces quatre paramètres, et tu regardes si le recordcount est supérieur à
0.
Si oui tu renvois true.
Par exemple (non testé) :
function TstPresence (Champ1 as string, Val1 as string, Champ2 as string,
Val2 as string) as boolean
dim dbscurrent as database
set dbscurrent = opendatabase(currentdb.name)
dim rstTst as recordset
set rstTst = dbscurrent.openrecordset("SELECT * FROM [TaTable] WHERE " &
Champ1 & "=" & Val1 & " AND " & Champ2 & "=" & Val2 & ";")
If rstTst.recordcount > 0 then
TstPresence = True
Else
TstPresence = False
End If
set rstTst = nothing
set dbscurrent = nothing
end function
Pense juste à mettre des ' si tes champs sont de type texte.
Arnaud
"Erwan" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:3ded01c49fec$79341090$a301280a@phx.gbl...
Bonjour
Quel est le moyen le plus efficace de tester en VBA s'il
existe un enregitrement dont le champs1 à la valeur1 ET
le champs2 à la valeur2?
(Une fonction qui recrache simplement true or false me
suffit largement)
Si tu pars dans l'optique d'une fonction qui renvoit true ou false, le plus simple c'est peut etre de passer en paramètre de ta fonction les deux noms de champs et les deux valeurs, tu fais un recordset basé sur une requête avec ces quatre paramètres, et tu regardes si le recordcount est supérieur à 0. Si oui tu renvois true. Par exemple (non testé) :
function TstPresence (Champ1 as string, Val1 as string, Champ2 as string, Val2 as string) as boolean
dim dbscurrent as database set dbscurrent = opendatabase(currentdb.name) dim rstTst as recordset set rstTst = dbscurrent.openrecordset("SELECT * FROM [TaTable] WHERE " & Champ1 & "=" & Val1 & " AND " & Champ2 & "=" & Val2 & ";") If rstTst.recordcount > 0 then TstPresence = True Else TstPresence = False End If
set rstTst = nothing set dbscurrent = nothing
end function
Pense juste à mettre des ' si tes champs sont de type texte.
Arnaud
"Erwan" a écrit dans le message de news:3ded01c49fec$79341090$ Bonjour
Quel est le moyen le plus efficace de tester en VBA s'il existe un enregitrement dont le champs1 à la valeur1 ET le champs2 à la valeur2?
(Une fonction qui recrache simplement true or false me suffit largement)
j'ai mis des espaces expres pour des questions de lisibilité, mais il faut les enlever.
Arnaud
a écrit dans le message de news:49a501c49ff0$a5902030$ Merci ! Ou cça les apostrophes???
-----Message d'origine----- Bonjour,
Si tu pars dans l'optique d'une fonction qui renvoit true ou false, le plus
simple c'est peut etre de passer en paramètre de ta fonction les deux noms
de champs et les deux valeurs, tu fais un recordset basé sur une requête
avec ces quatre paramètres, et tu regardes si le recordcount est supérieur à
0. Si oui tu renvois true. Par exemple (non testé) :
function TstPresence (Champ1 as string, Val1 as string, Champ2 as string,
Val2 as string) as boolean
dim dbscurrent as database set dbscurrent = opendatabase(currentdb.name) dim rstTst as recordset set rstTst = dbscurrent.openrecordset("SELECT * FROM [TaTable] WHERE " &
j'ai mis des espaces expres pour des questions de lisibilité, mais il faut
les enlever.
Arnaud
<anonymous@discussions.microsoft.com> a écrit dans le message de
news:49a501c49ff0$a5902030$a401280a@phx.gbl...
Merci ! Ou cça les apostrophes???
-----Message d'origine-----
Bonjour,
Si tu pars dans l'optique d'une fonction qui renvoit
true ou false, le plus
simple c'est peut etre de passer en paramètre de ta
fonction les deux noms
de champs et les deux valeurs, tu fais un recordset basé
sur une requête
avec ces quatre paramètres, et tu regardes si le
recordcount est supérieur à
0.
Si oui tu renvois true.
Par exemple (non testé) :
function TstPresence (Champ1 as string, Val1 as string,
Champ2 as string,
Val2 as string) as boolean
dim dbscurrent as database
set dbscurrent = opendatabase(currentdb.name)
dim rstTst as recordset
set rstTst = dbscurrent.openrecordset("SELECT * FROM
[TaTable] WHERE " &
j'ai mis des espaces expres pour des questions de lisibilité, mais il faut les enlever.
Arnaud
a écrit dans le message de news:49a501c49ff0$a5902030$ Merci ! Ou cça les apostrophes???
-----Message d'origine----- Bonjour,
Si tu pars dans l'optique d'une fonction qui renvoit true ou false, le plus
simple c'est peut etre de passer en paramètre de ta fonction les deux noms
de champs et les deux valeurs, tu fais un recordset basé sur une requête
avec ces quatre paramètres, et tu regardes si le recordcount est supérieur à
0. Si oui tu renvois true. Par exemple (non testé) :
function TstPresence (Champ1 as string, Val1 as string, Champ2 as string,
Val2 as string) as boolean
dim dbscurrent as database set dbscurrent = opendatabase(currentdb.name) dim rstTst as recordset set rstTst = dbscurrent.openrecordset("SELECT * FROM [TaTable] WHERE " &