Access pb de requete

darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013 - 23 mai 2007 à 10:08
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 24 mai 2007 à 15:41
Bonjour,
J'ai un ptit souci ma requete SQL J'ai une erreur de syntaxe dans ma classe FROM et je ne vois pas pourquoi. Si quelqu'un peut m'aider je le remercie d'avance


<ol>
<li>Private Sub Commande13_Click()
</li>
<li>    On Error GoTo Err_Commande13_Click
</li>
<li>
</li>
<li>    Dim m As String
</li>
<li>    Dim a As String
</li>
<li>    Dim nomTable As String
</li>
<li>    Dim nomClasseur As String
</li>
<li>    Dim SQL As String
</li>
<li>    Dim d As String
</li>
<li>     
</li>
<li>    m = Me!mois
</li>
<li>    a = Me!année
</li>
<li>    d = a & m
</li>
<li>   
</li>
<li>    DoCmd.SetWarnings False
</li>
<li>
</li>
<li nd="32">    nomClasseur = "D:\Eric\dossier_projets\TDB\PJPF\PJPF2007-" & a & m & ".xls"
</li>
<li>    nomTable = "TableTest" & a & m
</li>
<li>
</li>
<li nd="33">    DoCmd.TransferSpreadsheet acImport, , nomTable, nomClasseur, 0
</li>
<li>
</li>
<li>    'Définir la requête
</li>
<li>
</li>
<li nd="34">SQL = "INSERT INTO Test ( OPPO, MPE, MPF, MRE, MRF, M__, année) " & _
</li>
<li nd="35">    "SELECT OPPO, MPE, MPF, MRE, MRF, M__, " & d & " AS année " & _
</li>
<li>    "FROM" & name & _
</li>
<li nd="36">    "WHERE CBQD=""total"" AND MOIS=""total"" AND CMOP=""total"";"
</li>
<li>
</li>
<li>    'Exécuter la requête
</li>
<li>    CurrentDb.Execute SQL
</li>
<li>   
</li>
<li>Exit_Commande13_Click:
</li>
<li>    Exit Sub
</li>
<li>Err_Commande13_Click:
</li>
<li>    MsgBox Err.Description
</li>
<li>    Resume Exit_Commande13_Click
</li>
<li>End Sub</li>
</ol>

27 réponses

darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
23 mai 2007 à 16:58
Voila mon code mais il fonctionne pas et je ne saispa s pourquoi les doublon sont toujorus la

Option Explicit


Private Sub Commande13_Click()
    On Error GoTo Err_Commande13_Click
  
    Dim m As String
    Dim a As String
    Dim nomTable As String
    Dim nomClasseur As String
    Dim SQL As String
    Dim d As String
    Dim cat As New ADOX.Catalog
      
    m = Me!mois
    a = Me!année
    d = a & m
   
    DoCmd.SetWarnings False


    nomClasseur = "D:\TEST\PJPF2007-" & a & m & ".xls"
    nomTable = "TableTest" & a & m


    If Not ExisteTable("nomTable") Then
    DoCmd.TransferSpreadsheet acImport, , nomTable, nomClasseur, -1
    End If
    'd = "2006_T3"
    'nomTable = "PJPF2006_T3"
   
    'Définir la requête
    SQL = "INSERT INTO Test ( OPPO, MPE, MPF, MRE, MRF, M__, [année]) " & _
    "SELECT OPPO, MPE, MPF, MRE, MRF, M__, """ & d & """ AS [année] " & _
    "FROM " & nomTable & _
    " WHERE CBQD='total' AND MOIS='total' AND CMOP='total';"


    'Exécuter la requête
    CurrentDb.Execute SQL


Set cat = Nothing
Exit_Commande13_Click:
    Exit Sub
Err_Commande13_Click:
    MsgBox Err.Description
    Resume Exit_Commande13_Click
End Sub


Function ExisteTable(ByVal strTabl As String) As Boolean
    Dim str As String
    On Error GoTo err01
    str = CurrentDb.TableDefs(strTabl).name
    ExisteTable = True
    Exit Function
err01:
    Select Case Err.Number
        Case 3265
            ExisteTable = False
    End Select
End Function
 
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
23 mai 2007 à 23:31
re salut
Je ne sais pas si ça va changer quelque chose;
mais pour vérifier si ta table éxiste


Function ExisteTable(strTabl As String) As Boolean
 Dim tblCount As Integer, i as inger
 tblCount=CurrentDb.TableDefs.Count
  For i=0 To tblCount
   If CurrentDb.TableDefs(i).Name=strTabl Then
     ExisteTable=True
     Exit For
  End If
Next


End Function













0
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
24 mai 2007 à 09:36
Ta fonction m'affiche une fenetre Element non trouvé dans la collection et du coup il ne veut pas continuer l'éxécution de mon code.
Est-ce normal??
0
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
24 mai 2007 à 10:03
oui c'est normal chaibat à fait une petite erreur.
Dim tblCount As Integer, i as integer
Je pense que c'est là que ça bloque.

Bonne chance pour la suite !

 pseudoOM
0

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

Posez votre question
darkspoilt Messages postés 254 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 10 octobre 2013
24 mai 2007 à 10:36
C'est bon j'ai résolu le probleme
0
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
24 mai 2007 à 10:58
Et quel était-il si je peux savoir ?

 pseudoOM
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
24 mai 2007 à 15:41
Salut tout le monde,
Salut pseudom,

Sûrement For i=0 To tblCount -1

<hr />
0
Rejoignez-nous