SQL

Résolu
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008 - 30 janv. 2008 à 11:06
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008 - 31 janv. 2008 à 14:24
Bonjour,
J'ai un problème avec ma requète :

req_doc = "select code_empruntable, titre_doc, ss_titre_doc, theme_doc, px_doc, date_edition, code_rech_doc, DOCUMENT.code_doc AS a, DOCUMENT.code_editeur AS b, DOCUMENT.code_type_doc AS c"
req_doc = req_doc + " from DOCUMENT, TYPE_DOCUMENT, CORRESPONDRE, AUTEUR, EDITEUR, EXEMPLAIRE "req_doc req_doc + " where TYPE_DOCUMENT.code_type_doc DOCUMENT.code_type_doc"req_doc req_doc + " and DOCUMENT.code_editeur EDITEUR.code_editeur"req_doc req_doc + " and DOCUMENT.code_doc CORRESPONDRE.code_doc"req_doc req_doc + " and CORRESPONDRE.code_auteur AUTEUR.code_auteur"req_doc req_doc + " and DOCUMENT.code_doc EXEMPLAIRE.code_doc"req_doc req_doc + " and titre_doc""" + Combo_titre_doc.Text + """"

Pourriez vous m'aider svp

l'erreur affichée  =>  erreur de syntaxe dans le select

Merci de votre aide

25 réponses

flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
31 janv. 2008 à 09:54
"Ma requête effectue des jointures ce qui est incompatible avec un ajout ou une mise
à jour de/des tables, il faut décomposer et n'utiliser d'une table à la fois
pour un accès en écriture sur une base de données. S'il y a plusieurs table à
mettre à jour il faut le faire avec plusieurs requêtes."





Voilà ce que mon prof de dev m'a répondu ce matin et tout fonctionne correctement à présent je posterai mon pti code quant je l'aurai terminé...

Merci pour votre aide
3
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
31 janv. 2008 à 14:24
Private Sub Cmd_enreg_Click()
Dim cuDoc As New ADODB.Recordset
Dim cuEx As New ADODB.Recordset
Dim cuCodetypedoc As New ADODB.Recordset
Dim cuAut As New ADODB.Recordset
Dim cuCodeEdi As New ADODB.Recordset
Dim req_Codetypedoc As String
Dim req_code_aut As String
Dim req_code_edi As String
Dim changetheme As Boolean

'--- requète code type doc
req_Codetypedoc = "select code_type_doc from TYPE_DOCUMENT where libelle_doc=""" + Combo_type_doc + """"
cuCodetypedoc.Open req_Codetypedoc, bd, adOpenDynamic, adLockOptimistic

'--- requète code auteurreq_code_aut "select code_auteur from AUTEUR where nom_auteur """ + Combo_nom_aut + """"
cuAut.Open req_code_aut, bd, adOpenDynamic, adLockOptimistic

'--- requète code editeurreq_code_edi "select code_editeur from EDITEUR where nom_editeur """ + Combo_edit + """"
cuCodeEdi.Open req_code_edi, bd, adOpenDynamic, adLockOptimistic

'--- ouvrir un recordset sur la table DOCUMENT
cuDoc.Open "DOCUMENT", bd, adOpenDynamic, adLockOptimistic

'--- boucle en fonction du curseur document
While Not cuDoc.EOF
    If cuDoc!titre_doc = Combo_titre_doc.Text Then
        '--- MAJ table document
            cuDoc!code_empruntable = Check1.Value
            cuDoc!titre_doc = T_titre_doc
            cuDoc!ss_titre_doc = T_ss_titre_doc
            cuDoc!theme_doc = Combo_theme_doc.Text
            cuDoc!px_doc = T_px_doc
            cuDoc!date_edition = T_date_edit
            cuDoc!code_type_doc = cuCodetypedoc!code_type_doc
            cuDoc!code_editeur = cuCodeEdi!code_editeur
        cuDoc.Update
        '--- booléen permettant de determiner si le thême à été modifié
        If cuDoc!theme_doc <> Combo_theme_rech.Text Then
           changetheme = True
        Else
           changetheme = False
        End If
        '--- MAJ table exemplaire si le theme à été modifié
        cuEx.Open "EXEMPLAIRE", bd, adOpenDynamic, adLockOptimistic
        If changetheme = True Then
            While Not cuEx.EOF
                If cuEx!code_doc = cuDoc!code_doc Then
                    cuEx!code_rech_doc = codeRech(Combo_theme_doc.Text)
                    cuEx.Update
                    cuEx.MoveNext
                Else
                    cuEx.MoveNext
                End If
            Wend
        End If
        cuEx.Close
        cuDoc.MoveNext
    Else
    cuDoc.MoveNext
    End If
Wend
cuCodeEdi.Close
cuDoc.Close
End Sub

Comme quoi il ne faut pas vouloir faire compliqué . . .   
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 11:17
Bonjour

1) a la place des + utilises des & (pour concaténer les chaines)
2) Avec Debug.Print, affiche la requête tel qu'elle est envoyée

sinon, je ne vois rien qui me choque particulièrement.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
30 janv. 2008 à 11:28
Salut,

Je pencherais pour la fine de la requête, essaye cela défois que :

req_doc = "select code_empruntable, titre_doc, ss_titre_doc, theme_doc, px_doc, date_edition, code_rech_doc, DOCUMENT.code_doc AS a, DOCUMENT.code_editeur AS b, DOCUMENT.code_type_doc AS c"
req_doc = req_doc & " from DOCUMENT, TYPE_DOCUMENT, CORRESPONDRE, AUTEUR, EDITEUR, EXEMPLAIRE "req_doc req_doc & " where TYPE_DOCUMENT.code_type_doc DOCUMENT.code_type_doc"req_doc req_doc & " and DOCUMENT.code_editeur EDITEUR.code_editeur"req_doc req_doc & " and DOCUMENT.code_doc CORRESPONDRE.code_doc"req_doc req_doc & " and CORRESPONDRE.code_auteur AUTEUR.code_auteur"req_doc req_doc & " and DOCUMENT.code_doc EXEMPLAIRE.code_doc"req_doc req_doc & " and titre_doc '" & Combo_titre_doc.Text & "'"

A+
Exploreur

 Linux a un noyau, Windows un pépin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 11:31
Merci pour votre aide mais rien ne fonctionne !
Je ne comprends pas pourquoi j'utilise SQL depuis 3 ans et cette petite erreur m'enpeche d'avancer....
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
30 janv. 2008 à 11:33
Re,

Comme le problème n'est pas résolut, ne valide par les réponses....

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 11:38
Ok merci pr l'info je decouvre le forum ...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 13:26
Bonjour

Je repose mon point n°2 : Affiche la requête comme elle est executée :
Avec un debug.Print par exemple et met l'affichage sur le sujet en cours.

Ensuite, tu bosse avec quel SGBD ?

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 14:05
je taf sur ACCESS et VB 6.0
et debug.print ?   je vais essayer ca ! merci
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 14:10
debug.print ne me donne aucune valeur
c'est vraiment le formalisme de la requète

au niveau de mon select car si je ne met pas les champs "DOCUMENT.code_doc AS a, DOCUMENT.code_editeur AS b, DOCUMENT.code_type_doc AS c" ma requète s'affiche mais je ne peut pas l'utiliser sans alias

faut-il mettre des crochets ou des choses comme ca j'ai cherché partout je ne comprend pas
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 14:22
Bonjour

Debug.Print req_doc
affiche ta requête dans la fenêtre "Execution" de l'environnement.

Et ensuite, tu copie ce qu'il t'affiche ici pour voir si ta requête est correcte.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 14:33
ca n'affiche rien du tout ds la fenetre execution
lorsque je met le curseur sur le beug ca me donne ceci :
    req_doc = ""
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 14:43
Bonjour

Ben alors met le code entre la définition de ta requete et le Debug.Print.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 14:51
Rien ne se passe
...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 15:07
Bonjour

Une recherche google avec "SQL alias" m'a donné un site :
http://sql.1keydata.com/fr/sql-alias.php

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 15:09
Bonjour

Ou encore :
http://www.journaldunet.com/developpeur/tutoriel/sql/051215-sql-alias-ambiguite.shtml

Test les 2 possibilité évoquées.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 15:14
Mais ce n'est pas logique j'ai pourtant essayer le formalisme que tu as trouvé NHenry sur le site mais tjr rien

req_doc = "" ""

Normalement la requète devrait etre = "select ......." mais la ca ne prend pas du tout ce que j'ai codé
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 15:23
Bonjour

Met le code de ta sub/fonction alors.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
flopurple Messages postés 14 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 6 février 2008
30 janv. 2008 à 15:24
Tjr pareil j'ai perdu ma matinée je suis vraiment perdu j'ai essayer

req_doc = "select code_empruntable, titre_doc, ss_titre_doc, theme_doc, px_doc, date_edition, code_rech_doc, D.code_doc as 'a', D.code_editeur as 'b', D.code_type_doc as 'c' "

rien a faire

au debeug => req_doc = ""

pourquoi la requète ne passe pas ????

je trouve pas d'autre solution ...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 janv. 2008 à 15:37
Bonjour

Met le code de ta sub/fonction alors.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Rejoignez-nous