OVH Cloud OVH Cloud

requete SQL directe

5 réponses
Avatar
rico
bonjour,

je voudrais executer une requete SQL directe sur une base=20
SQL =E0 partir de access.=20
La requete est du type

Select max(element) from table_sql where id=3D'toto'

la requete marche bien, mais en fait je voudrais modifier=20
la valeur de toto et donc faire pointer le id=3D vers une=20
table qui contient un champ variable de type txt=20

j'ai essaye where id=3D'& table1.intitule &' mais ca ne=20
marche pas. (cela ne renvoie rien du tout)

Si quelqu'un peut m'aider l=E0 dessus ce serait bien cool

Merci

5 réponses

Avatar
mousnynao
Bonjour,

Je vous présente un exemple que j'ai créé avec un base
de données de ma vidéothèque. C'est exactement ce que
je fais. Je modifie la requête par programmation à
partir d'une variable provenant d'une liste déroulante.

Vous n'aurez qu'a adapter !

Début :
'*******************************************************
Private Sub Liste_Cassette_AfterUpdate()

Dim Chaine As String
Dim Critere As String
Dim CassetteVidéo As String

On Error GoTo Liste_Cassette_Err

CassetteVidéo = Forms![Formulaire Table Vidéo].[Liste
Cassette]
Chaine = "Select * from [Table Vidéo] where [Cassette]
= "
Critere = Chaine & """" & CassetteVidéo & """"

If (ChangeRequeteDef("Requête Liste Spécifique
Cassette", Critere)) Then
DoCmd.OpenForm "Formulaire Liste Spécifique
Cassette", acNormal, "", "[Cassette]", , acNormal
End If

Liste_Cassette_Exit:
Exit Sub

Liste_Cassette_Err:
MsgBox Error$
Resume Liste_Cassette_Exit

End Sub
-------------------------------------------------------
Public Function ChangeRequeteDef(ChaineRequete As String,
ChaineSQL As String) As Boolean

Dim Definition As Variant

If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs(ChaineRequete)
Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If

End Function
********************************************************

Si vous ne vous y retrouvez pas, faites moi signe :)

mousnynao!

-----Message d'origine-----
bonjour,

je voudrais executer une requete SQL directe sur une base
SQL à partir de access.
La requete est du type

Select max(element) from table_sql where id='toto'

la requete marche bien, mais en fait je voudrais modifier
la valeur de toto et donc faire pointer le id= vers une
table qui contient un champ variable de type txt

j'ai essaye where id='& table1.intitule &' mais ca ne
marche pas. (cela ne renvoie rien du tout)

Si quelqu'un peut m'aider là dessus ce serait bien cool

Merci
.



Avatar
rico
bonjour,

en fait je ne souhaitais pas programmer et d'ailleurs je
ne suis pas assez competent en VB.
je cherche juste à incorporer un champ venant d'une autre
table pour eviter d'avoir à rentrer dans les requetes qui
accedent sur le serveur SQL.
La table "table1" recupere un seul et unique champ texte
venant d'un fichier txt lié et le met dans le champ
intitule.
Ce doit etre possible en combinant les ' et les & mais
je cale.

Si vous avez des infos je suis preneur

Merci
-----Message d'origine-----
Bonjour,

Je vous présente un exemple que j'ai créé avec un base
de données de ma vidéothèque. C'est exactement ce que
je fais. Je modifie la requête par programmation à
partir d'une variable provenant d'une liste déroulante.

Vous n'aurez qu'a adapter !

Début :
'*******************************************************
Private Sub Liste_Cassette_AfterUpdate()

Dim Chaine As String
Dim Critere As String
Dim CassetteVidéo As String

On Error GoTo Liste_Cassette_Err

CassetteVidéo = Forms![Formulaire Table Vidéo].
[Liste

Cassette]
Chaine = "Select * from [Table Vidéo] where
[Cassette]

= "
Critere = Chaine & """" & CassetteVidéo & """"

If (ChangeRequeteDef("Requête Liste Spécifique
Cassette", Critere)) Then
DoCmd.OpenForm "Formulaire Liste Spécifique
Cassette", acNormal, "", "[Cassette]", , acNormal
End If

Liste_Cassette_Exit:
Exit Sub

Liste_Cassette_Err:
MsgBox Error$
Resume Liste_Cassette_Exit

End Sub
-------------------------------------------------------
Public Function ChangeRequeteDef(ChaineRequete As
String,

ChaineSQL As String) As Boolean

Dim Definition As Variant

If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs
(ChaineRequete)

Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If

End Function
********************************************************

Si vous ne vous y retrouvez pas, faites moi signe :)

mousnynao!

-----Message d'origine-----
bonjour,

je voudrais executer une requete SQL directe sur une
base


SQL à partir de access.
La requete est du type

Select max(element) from table_sql where id='toto'

la requete marche bien, mais en fait je voudrais
modifier


la valeur de toto et donc faire pointer le id= vers une
table qui contient un champ variable de type txt

j'ai essaye where id='& table1.intitule &' mais ca ne
marche pas. (cela ne renvoie rien du tout)

Si quelqu'un peut m'aider là dessus ce serait bien cool

Merci
.

.





Avatar
rico
bonjour,

en fait je ne souhaitais pas programmer et d'ailleurs je
ne suis pas assez competent en VB.
je cherche juste à incorporer un champ venant d'une autre
table pour eviter d'avoir à rentrer dans les requetes qui
accedent sur le serveur SQL.
La table "table1" recupere un seul et unique champ texte
venant d'un fichier txt lié et le met dans le champ
intitule.
Ce doit etre possible en combinant les ' et les & mais
je cale.

Si vous avez des infos je suis preneur

Merci
-----Message d'origine-----
Bonjour,

Je vous présente un exemple que j'ai créé avec un base
de données de ma vidéothèque. C'est exactement ce que
je fais. Je modifie la requête par programmation à
partir d'une variable provenant d'une liste déroulante.

Vous n'aurez qu'a adapter !

Début :
'*******************************************************
Private Sub Liste_Cassette_AfterUpdate()

Dim Chaine As String
Dim Critere As String
Dim CassetteVidéo As String

On Error GoTo Liste_Cassette_Err

CassetteVidéo = Forms![Formulaire Table Vidéo].
[Liste

Cassette]
Chaine = "Select * from [Table Vidéo] where
[Cassette]

= "
Critere = Chaine & """" & CassetteVidéo & """"

If (ChangeRequeteDef("Requête Liste Spécifique
Cassette", Critere)) Then
DoCmd.OpenForm "Formulaire Liste Spécifique
Cassette", acNormal, "", "[Cassette]", , acNormal
End If

Liste_Cassette_Exit:
Exit Sub

Liste_Cassette_Err:
MsgBox Error$
Resume Liste_Cassette_Exit

End Sub
-------------------------------------------------------
Public Function ChangeRequeteDef(ChaineRequete As
String,

ChaineSQL As String) As Boolean

Dim Definition As Variant

If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs
(ChaineRequete)

Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If

End Function
********************************************************

Si vous ne vous y retrouvez pas, faites moi signe :)

mousnynao!

-----Message d'origine-----
bonjour,

je voudrais executer une requete SQL directe sur une
base


SQL à partir de access.
La requete est du type

Select max(element) from table_sql where id='toto'

la requete marche bien, mais en fait je voudrais
modifier


la valeur de toto et donc faire pointer le id= vers une
table qui contient un champ variable de type txt

j'ai essaye where id='& table1.intitule &' mais ca ne
marche pas. (cela ne renvoie rien du tout)

Si quelqu'un peut m'aider là dessus ce serait bien cool

Merci
.

.





Avatar
rico
bonjour,

en fait je ne souhaitais pas programmer et d'ailleurs je
ne suis pas assez competent en VB.
je cherche juste à incorporer un champ venant d'une autre
table pour eviter d'avoir à rentrer dans les requetes qui
accedent sur le serveur SQL.
La table "table1" recupere un seul et unique champ texte
venant d'un fichier txt lié et le met dans le champ
intitule.
Ce doit etre possible en combinant les ' et les & mais
je cale.

Si vous avez des infos je suis preneur

Merci
-----Message d'origine-----
Bonjour,

Je vous présente un exemple que j'ai créé avec un base
de données de ma vidéothèque. C'est exactement ce que
je fais. Je modifie la requête par programmation à
partir d'une variable provenant d'une liste déroulante.

Vous n'aurez qu'a adapter !

Début :
'*******************************************************
Private Sub Liste_Cassette_AfterUpdate()

Dim Chaine As String
Dim Critere As String
Dim CassetteVidéo As String

On Error GoTo Liste_Cassette_Err

CassetteVidéo = Forms![Formulaire Table Vidéo].
[Liste

Cassette]
Chaine = "Select * from [Table Vidéo] where
[Cassette]

= "
Critere = Chaine & """" & CassetteVidéo & """"

If (ChangeRequeteDef("Requête Liste Spécifique
Cassette", Critere)) Then
DoCmd.OpenForm "Formulaire Liste Spécifique
Cassette", acNormal, "", "[Cassette]", , acNormal
End If

Liste_Cassette_Exit:
Exit Sub

Liste_Cassette_Err:
MsgBox Error$
Resume Liste_Cassette_Exit

End Sub
-------------------------------------------------------
Public Function ChangeRequeteDef(ChaineRequete As
String,

ChaineSQL As String) As Boolean

Dim Definition As Variant

If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs
(ChaineRequete)

Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If

End Function
********************************************************

Si vous ne vous y retrouvez pas, faites moi signe :)

mousnynao!

-----Message d'origine-----
bonjour,

je voudrais executer une requete SQL directe sur une
base


SQL à partir de access.
La requete est du type

Select max(element) from table_sql where id='toto'

la requete marche bien, mais en fait je voudrais
modifier


la valeur de toto et donc faire pointer le id= vers une
table qui contient un champ variable de type txt

j'ai essaye where id='& table1.intitule &' mais ca ne
marche pas. (cela ne renvoie rien du tout)

Si quelqu'un peut m'aider là dessus ce serait bien cool

Merci
.

.





Avatar
mousnynao
Re :

Je ne suis pas assez expert de Access pour bien
comprendre!

Si je ne m'abuse, vous créé un requête sur la table source
et ensuite vous relié le champs de l'autre table sur la
requête.

Si vous avez un exemple concret de jeu avec ' et &, je
pourrai sans doute vous aidez plus.

mousnynao!
-----Message d'origine-----
bonjour,

en fait je ne souhaitais pas programmer et d'ailleurs je
ne suis pas assez competent en VB.
je cherche juste à incorporer un champ venant d'une autre
table pour eviter d'avoir à rentrer dans les requetes qui
accedent sur le serveur SQL.
La table "table1" recupere un seul et unique champ texte
venant d'un fichier txt lié et le met dans le champ
intitule.
Ce doit etre possible en combinant les ' et les & mais
je cale.

Si vous avez des infos je suis preneur

Merci
-----Message d'origine-----
Bonjour,

Je vous présente un exemple que j'ai créé avec un base
de données de ma vidéothèque. C'est exactement ce que
je fais. Je modifie la requête par programmation à
partir d'une variable provenant d'une liste déroulante.

Vous n'aurez qu'a adapter !

Début :
'*******************************************************
Private Sub Liste_Cassette_AfterUpdate()

Dim Chaine As String
Dim Critere As String
Dim CassetteVidéo As String

On Error GoTo Liste_Cassette_Err

CassetteVidéo = Forms![Formulaire Table Vidéo].
[Liste

Cassette]
Chaine = "Select * from [Table Vidéo] where
[Cassette]

= "
Critere = Chaine & """" & CassetteVidéo & """"

If (ChangeRequeteDef("Requête Liste Spécifique
Cassette", Critere)) Then
DoCmd.OpenForm "Formulaire Liste Spécifique
Cassette", acNormal, "", "[Cassette]", , acNormal
End If

Liste_Cassette_Exit:
Exit Sub

Liste_Cassette_Err:
MsgBox Error$
Resume Liste_Cassette_Exit

End Sub
-------------------------------------------------------
Public Function ChangeRequeteDef(ChaineRequete As
String,

ChaineSQL As String) As Boolean

Dim Definition As Variant

If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
ChangeRequeteDef = False
Else
Set Definition = CurrentDb.QueryDefs
(ChaineRequete)

Definition.SQL = ChaineSQL
Definition.Close
RefreshDatabaseWindow
ChangeRequeteDef = True
End If

End Function
********************************************************

Si vous ne vous y retrouvez pas, faites moi signe :)

mousnynao!

-----Message d'origine-----
bonjour,

je voudrais executer une requete SQL directe sur une
base


SQL à partir de access.
La requete est du type

Select max(element) from table_sql where id='toto'

la requete marche bien, mais en fait je voudrais
modifier


la valeur de toto et donc faire pointer le id= vers une
table qui contient un champ variable de type txt

j'ai essaye where id='& table1.intitule &' mais ca ne
marche pas. (cela ne renvoie rien du tout)

Si quelqu'un peut m'aider là dessus ce serait bien cool

Merci
.

.


.