OVH Cloud OVH Cloud

Requête en VB

3 réponses
Avatar
Marlène
Bonjour,
Comment peut-on affecter le résultat d'une requête à une variable en VB. Il
me semble que la requête doit être inscrite dans une variable de type String
alors que mon autre variable est de type Single

Extrait du code :

'Permet d'obtenir le montant HT de la facture
'*********************************************
Dim bd As Database
Dim bds As Recordset
Dim Montant_HT_code As Single 'Montant HT
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période
Dim Nbre_jours_code As Single 'Nombre de jours de la période
Dim Tarif_j_code As Single 'Tarif journalier
Dim Selection As String 'Chaîne contenant la requête
Const Titre1 As String = "Détermination du montant HT"
Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) FROM DETAIL_ACTIVITES
WHERE DETAIL_ACTIVITES.Désignation_act = ""Présence"" AND INGENIEURS.Nom_ing
= Ingenieur AND DETAIL_ACTIVITES.Date_debut_act >= Date_debut_code AND
DETAIL_ACTIVITES.Date_fin_act <= Date_fin_code "


Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")


Nbre_jours_code = CSng(Selection) ??????????????????


MsgBox ("Valeur" & Nbre_jours_code)
Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
Wend


[Montant_HT] = Montant_HT_code


bds.Close
bd.Close


End Sub

Merci pour votre aide
--
Marlène

3 réponses

Avatar
J-Pierre
Bonjour Marlène,

Il me semble que ta requête ne peut pas fonctionner car Selection = ne tient pas compte des paramètres, et il manque les
délimiteurs:


Dim bd As Database
Dim bds As Recordset
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période

Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")

Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) " & _
"FROM DETAIL_ACTIVITES " & _
"WHERE DETAIL_ACTIVITES.Désignation_act = 'Présence' " & _
" AND INGENIEURS.Nom_ing = '" & Ingenieur & "' " & _
" AND DETAIL_ACTIVITES.Date_debut_act >= #" & Date_debut_code & "# " & _
" AND DETAIL_ACTIVITES.Date_fin_act <= #" & Date_fin_code & "#;"

J-Pierre

"Marlène" a écrit dans le message de news:ODFx$
Bonjour,
Comment peut-on affecter le résultat d'une requête à une variable en VB. Il
me semble que la requête doit être inscrite dans une variable de type String
alors que mon autre variable est de type Single

Extrait du code :

'Permet d'obtenir le montant HT de la facture
'*********************************************
Dim bd As Database
Dim bds As Recordset
Dim Montant_HT_code As Single 'Montant HT
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période
Dim Nbre_jours_code As Single 'Nombre de jours de la période
Dim Tarif_j_code As Single 'Tarif journalier
Dim Selection As String 'Chaîne contenant la requête
Const Titre1 As String = "Détermination du montant HT"
Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) FROM DETAIL_ACTIVITES
WHERE DETAIL_ACTIVITES.Désignation_act = ""Présence"" AND INGENIEURS.Nom_ing
= Ingenieur AND DETAIL_ACTIVITES.Date_debut_act >= Date_debut_code AND
DETAIL_ACTIVITES.Date_fin_act <= Date_fin_code "


Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")


Nbre_jours_code = CSng(Selection) ??????????????????


MsgBox ("Valeur" & Nbre_jours_code)
Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
Wend


[Montant_HT] = Montant_HT_code


bds.Close
bd.Close


End Sub

Merci pour votre aide
--
Marlène




Avatar
Marlène
Merci pour ta réponse.
Je débute.
Peux tu me dire quels sont les paramètres qu'il me manque?
D'avance merci.
Marlène

"J-Pierre" a écrit dans le message de
news:%
Bonjour Marlène,

Il me semble que ta requête ne peut pas fonctionner car Selection = ne
tient pas compte des paramètres, et il manque les

délimiteurs:


Dim bd As Database
Dim bds As Recordset
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période

Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")

Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) " & _
"FROM DETAIL_ACTIVITES " & _
"WHERE DETAIL_ACTIVITES.Désignation_act = 'Présence' " & _
" AND INGENIEURS.Nom_ing = '" & Ingenieur & "' " & _
" AND DETAIL_ACTIVITES.Date_debut_act >= #" & Date_debut_code & "# " & _
" AND DETAIL_ACTIVITES.Date_fin_act <= #" & Date_fin_code & "#;"

J-Pierre

"Marlène" a écrit dans le message de
news:ODFx$

Bonjour,
Comment peut-on affecter le résultat d'une requête à une variable en VB.
Il


me semble que la requête doit être inscrite dans une variable de type
String


alors que mon autre variable est de type Single

Extrait du code :

'Permet d'obtenir le montant HT de la facture
'*********************************************
Dim bd As Database
Dim bds As Recordset
Dim Montant_HT_code As Single 'Montant HT
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période
Dim Nbre_jours_code As Single 'Nombre de jours de la période
Dim Tarif_j_code As Single 'Tarif journalier
Dim Selection As String 'Chaîne contenant la requête
Const Titre1 As String = "Détermination du montant HT"
Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) FROM
DETAIL_ACTIVITES


WHERE DETAIL_ACTIVITES.Désignation_act = ""Présence"" AND
INGENIEURS.Nom_ing


= Ingenieur AND DETAIL_ACTIVITES.Date_debut_act >= Date_debut_code AND
DETAIL_ACTIVITES.Date_fin_act <= Date_fin_code "


Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")


Nbre_jours_code = CSng(Selection) ??????????????????


MsgBox ("Valeur" & Nbre_jours_code)
Ingenieur = InputBox("Quel ingénieur voulez-vous facturer
?",


"Ingénieur")
Wend


[Montant_HT] = Montant_HT_code


bds.Close
bd.Close


End Sub

Merci pour votre aide
--
Marlène








Avatar
J-Pierre
Dans ma réponse, je t'ai mis le code modifié, il faut construire Selection (Selection = "blablabla...") après avoir récupéré les
variables


"Marlène" a écrit dans le message de news:
Merci pour ta réponse.
Je débute.
Peux tu me dire quels sont les paramètres qu'il me manque?
D'avance merci.
Marlène

"J-Pierre" a écrit dans le message de
news:%
Bonjour Marlène,

Il me semble que ta requête ne peut pas fonctionner car Selection = ne
tient pas compte des paramètres, et il manque les

délimiteurs:


Dim bd As Database
Dim bds As Recordset
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période

Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")

Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) " & _
"FROM DETAIL_ACTIVITES " & _
"WHERE DETAIL_ACTIVITES.Désignation_act = 'Présence' " & _
" AND INGENIEURS.Nom_ing = '" & Ingenieur & "' " & _
" AND DETAIL_ACTIVITES.Date_debut_act >= #" & Date_debut_code & "# " & _
" AND DETAIL_ACTIVITES.Date_fin_act <= #" & Date_fin_code & "#;"

J-Pierre

"Marlène" a écrit dans le message de
news:ODFx$

Bonjour,
Comment peut-on affecter le résultat d'une requête à une variable en VB.
Il


me semble que la requête doit être inscrite dans une variable de type
String


alors que mon autre variable est de type Single

Extrait du code :

'Permet d'obtenir le montant HT de la facture
'*********************************************
Dim bd As Database
Dim bds As Recordset
Dim Montant_HT_code As Single 'Montant HT
Dim Ingenieur As String 'Nom de l'ingénieur
Dim Date_debut_code As Date 'Date début de période
Dim Date_fin_code As Date 'Date fin de période
Dim Nbre_jours_code As Single 'Nombre de jours de la période
Dim Tarif_j_code As Single 'Tarif journalier
Dim Selection As String 'Chaîne contenant la requête
Const Titre1 As String = "Détermination du montant HT"
Selection = "SELECT Sum(DETAIL_ACTIVITE.Nbre_jours) FROM
DETAIL_ACTIVITES


WHERE DETAIL_ACTIVITES.Désignation_act = ""Présence"" AND
INGENIEURS.Nom_ing


= Ingenieur AND DETAIL_ACTIVITES.Date_debut_act >= Date_debut_code AND
DETAIL_ACTIVITES.Date_fin_act <= Date_fin_code "


Set bd = CurrentDb
Set bds = bd.OpenRecordset("DETAIL_FACTURE")

Ingenieur = InputBox("Quel ingénieur voulez-vous facturer ?",
"Ingénieur")
While Ingenieur <> "FIN"
Date_debut_code = InputBox("Quelle est la date de début de
facturation ?", "Date de début")
Date_fin_code = InputBox("Quelle est la date de fin de
facturation ?", "Date de fin")


Nbre_jours_code = CSng(Selection) ??????????????????


MsgBox ("Valeur" & Nbre_jours_code)
Ingenieur = InputBox("Quel ingénieur voulez-vous facturer
?",


"Ingénieur")
Wend


[Montant_HT] = Montant_HT_code


bds.Close
bd.Close


End Sub

Merci pour votre aide
--
Marlène