Access et VB

m_makhoukh Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   -  
 Titeuf -
bonjour,
je ne sais pas pourquoi,quand je fais cette requete il il n'accepte la :"02"dans le where et il met( attendu:fin d'instruction)

Dim qdf As QueryDef
Dim chSQL As String
chSQL = "SELECT conso2.code_article, conso2.code_famille FROM conso2 
WHERE (((conso2.code_famille)="02"))  ;"
Set qdf = dbsBase.CreateQueryDef("NouvelleRequete", chSQL)
DoCmd.OpenQuery "NouvelleRequete"

merci d'avance.
A voir également:

5 réponses

Titeuf
 
(((conso2.code_famille)="02"))

Je pense que tu devrai enlever les guillements à 02 si ce n'est pas une chaine de caractere; si tu as declare ton code_famille en entier alors enlève les guillemets
++
0
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
salut,

pour continuer sur la lancée de Titeuf :

si code_famille est déclaré comme chaîne de caractère, il faut entourer 02 par des apostrophes, pas par des guillemets : '02'.

0
m_makhoukh Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   2
 
merci,
mais jai un autre souci c'est que qd je veux executer la requete il me met nue erreur(*) comme quoii la requetes est une requete de selection ,comment SVP executer une requete de selection:

chSQL = "SELECT * FROM conso2 Where conso2.code_famille=02  ;"
qdf = dbsBase.CreateQueryDef("NouvelleRequete", chSQL)
'On donne un nom a notre requete
stDocName = "NouvelleRequete"
'On execute la requete
DoCmd.OpenQuery stDocName, acNormal, acEdit(*)


0
Utilisateur anonyme
 
Salut,

Ne serait-ce pas ?

chSQL = "SELECT * FROM conso2 Where conso2.code_famille=" & """" & "02" & """" & " ;"

Lupin
0

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

Posez votre question
m_makhoukh Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   2
 
merci,

comment faire pour importer un fichier csv (separateur ,) sous access VB SVP.


merci d'avance.
0
Titeuf
 
Ca c'est du code vb pour charger des tables à partir de fichier texte de la forme suivante :

champ1;champ2;chanmps3;champs4
champ1a;champ2a;chanmps3a;champs4a
champ1b;champ2b;chanmps3b;champs4b
...
...
...
...

'Procédure chargemement charge les données dans les tables correspondantes
'Pas de paramètres
Public Sub chargement()

    'Déclaration des variables chaînes de caractères
    Dim fichier_import As String
    Dim fichier_table As String
    Dim msg_erreur As String
    Dim g As String
    Dim c As String
    Dim s As String
    Dim l As String
    
    'Déclaration d'un entier
    Dim choix As Integer
    
    'Déclaration des recordsets
    Dim rst As DAO.Recordset
    Dim rst_g As DAO.Recordset
    Dim rst_c As DAO.Recordset
    Dim rst_l As DAO.Recordset
    Dim rst_s As DAO.Recordset
    Dim rst_gest As DAO.Recordset
    Dim rst_cpt As DAO.Recordset
    Dim rst_lieu As DAO.Recordset
    Dim rst_serie As DAO.Recordset

    'En cas d'erreur on va à l'étiquette Gestion_Erreur
    On Error GoTo Gestion_Erreur
    
    'Initialisation des chaines de caractères
    g = "SELECT * FROM Tables WHERE Code_table='g'"
    s = "SELECT * FROM Tables WHERE Code_table='s'"
    c = "SELECT * FROM Tables WHERE Code_table='c'"
    l = "SELECT * FROM Tables WHERE Code_table='l'"
    
    
    'On demande à l'utilisateur si il veut vraiment charger les tables
    choix = MsgBox("Voulez vous charger les tables?", vbYesNo + vbQuestion, "Demande chargement")
    
    'Si non
    If choix = vbNo Then
        'Affichage d'un message pour lui dire que le chargemement a été annulé
        MsgBox "Chargement annulé", vbInformation, "Arrêt"
        'On sort de la procédure
        Exit Sub
    Else 'Si il confirme le chargemement
    
        'On active le sablier
        DoCmd.Hourglass True
        
        'On ouvre la fenêtre Etat
        DoCmd.OpenForm "Etat"
        
        'Affichage de l'état d'avancement
        Call Forms("Etat").Progress("IMPORTATION", "Consultation de la table PARAMETRES")
        'Boucle de temporisation pour la lecture du message
        For i = 1 To 5000000
        Next i
        
        'Si la table paramètre n'est pas renseigné
        'On prévient l'utilisateur et on va à l'étiquette Exit_chargemement
        If parametre("chemin_fichier") = "Non renseigné" Then
            msg_erreur = "Chargement abandonné. Répertoire de travail non renseigné dans la table des paramètres."
            MsgBox msg_erreur, vbOKOnly + vbCritical + vbDefaultButton1, "Importation"
            GoTo Exit_Chargement
        End If
        
        'On ferme la fenêtre état
        DoCmd.Close acForm, "Etat"
        
        'On appelle la procédure purge
        Call purge
        
        'On ouvre la fenêtre Etat
        DoCmd.OpenForm "Etat"
        
        'Affichage de l'état d'avancement
        Call Forms("Etat").Progress("CHARGEMENT", "Chargement des données dans la table IMMOBILISATION")
        'Boucle de temporisation pour la lecture du message
        For i = 1 To 5000000
        Next i
        
        'On importe le fichier immobilisation.txt selon les spécifications d'importations
        fichier_import = parametre("chemin_fichier") & "immobilisation.txt"
        DoCmd.TransferText acImportDelim, "Spécification d'importation", "Immobilisation", fichier_import, False
        
        'Affichage de l'état d'avancement
        Call Forms("Etat").Progress("CHARGEMENT", "Chargement des données dans les tables correspondantes")
        'Boucle de temporisation pour la lecture du message
        For i = 1 To 5000000
        Next i
        
        'On importe le fichier tables.txt selon les spécifications d'importation
        fichier_table = parametre("chemin_fichier") & "tables.txt"
        DoCmd.TransferText acImportDelim, "Tables Spécification d'importation", "Tables", fichier_table, False
        
        
        'Initialisation de tous les recordsets
        Set rst_gest = CurrentDb.OpenRecordset("Gestion")
        Set rst_cpt = CurrentDb.OpenRecordset("Compte")
        Set rst_lieu = CurrentDb.OpenRecordset("Lieu utilisation")
        Set rst_serie = CurrentDb.OpenRecordset("Série Articles")
        Set rst_c = CurrentDb.OpenRecordset(c, dbOpenDynaset)
        Set rst_g = CurrentDb.OpenRecordset(g, dbOpenDynaset)
        Set rst_l = CurrentDb.OpenRecordset(l, dbOpenDynaset)
        Set rst_s = CurrentDb.OpenRecordset(s, dbOpenDynaset)
      
        'On répartit les données de la table Tables dans la table gestion
        'Lorsque le code_table='g'
        Do Until rst_g.EOF
           rst_gest.AddNew
           rst_gest("Code_gestion_achat") = rst_g("Champ1")
           rst_gest("Code_gestion_utilisatrice") = rst_g("Champ2")
           rst_gest("Libellé") = rst_g("Champ3")
           rst_gest("Code_table") = rst_g("Code_table")
           rst_gest.Update
           rst_g.MoveNext
        Loop
        'Fermeture des recordset utilisés
        rst_g.Close
        rst_gest.Close
        
       'On répartit les données de la table Tables dans la table compte
       'Lorsque le code_table='c'
       Do Until rst_c.EOF
            rst_cpt.AddNew
            rst_cpt("N°Compte") = rst_c("Champ1")
            rst_cpt("Libellé") = rst_c("Champ2")
            rst_cpt("Code_table") = rst_c("Code_table")
            rst_cpt.Update
            rst_c.MoveNext
        Loop
        'Fermeture des recordsets utilisés
        rst_c.Close
        rst_cpt.Close
      
       'On répartit les données de la table Tables dans la table lieu_utilisation
       'Lorsque le code_table='l'
        Do Until rst_l.EOF
            rst_lieu.AddNew
            rst_lieu("Code_lieu_utilisation") = rst_l("Champ1")
            rst_lieu("Libellé") = rst_l("Champ2")
            rst_lieu("Code_table") = rst_l("Code_table")
            rst_lieu.Update
            rst_l.MoveNext
        Loop
        'Fermeture des recordsets utilisés
        rst_l.Close
        rst_lieu.Close
        
       'On répartit les données de la table Tables dans la table lsérie
       'Lorsque le code_table='s'
        Do Until rst_s.EOF
            rst_serie.AddNew
            rst_serie("Code_série_articles") = rst_s("Champ1")
            rst_serie("Libellé") = rst_s("Champ2")
            rst_serie("Code_table") = rst_s("Code_table")
            rst_serie.Update
            rst_s.MoveNext
        Loop
        'Fermeture des recordsets utilisés
        rst_s.Close
        rst_serie.Close
        
        'On ouvre la table immobilisation
        Set rst = CurrentDb.OpenRecordset("Immobilisation")
        
        If Not rst.EOF Then
            rst.MoveFirst
            Do Until rst.EOF
                rst.Edit
                'On modifie le Montant_achat et le Montant_reprise_enregistrement01 pour les avoir en €
                rst("Montant_achat") = rst("Montant_achat") / 100
                rst("Montant_reprise_enregistrement01") = rst("Montant_reprise_enregistrement01") / 100
                rst.Update
                rst.MoveNext
            Loop
        End If
        
        'On désactive le sablier
        DoCmd.Hourglass False
        'on ferme la fenêtre Etat
        DoCmd.Close acForm, "Etat"
        'On affiche un message pour prévenir que l'opération s'est déroulée corrrectement
        MsgBox "Chargement terminé", vbInformation, "Chargement réussi"
        
    End If
Exit Sub
    
'Etiquette de sortie du chargement
Exit_Chargement:
    'On désactive le sablier
    DoCmd.Hourglass False
    'On ferme la fenêtre Etat
    DoCmd.Close acForm, "Etat"
    'On affiche un message d'erreur
    MsgBox "Problème lors du chargement", vbCritical, "Erreur"
    'On sort de la procédure
    Exit Sub
        
'Etiquette de gestion des erreurs
Gestion_Erreur:
    'Selon le numéro d'erreur on affiche le message approprié et on va
    'à l'étiquette Exit_chargement
    Select Case Err
        Case 3011
            msg_erreur = "Importation abandonnée. Fichier " & fichier_import & " non trouvé."
            MsgBox msg_erreur, vbOKOnly + vbCritical + vbDefaultButton1, "Chargement"
            Resume Exit_Chargement
         Case 3044
            msg_erreur = "La disquette n'est pas insérée ou le chemin " & lfichier_import & " n'est pas valide."
            MsgBox msg_erreur, vbOKOnly + vbCritical + vbDefaultButton1, "Chargement"
            Resume Exit_Chargement
         Case Else
            MsgBox "Erreur n° " & Err & "  : " & Err.Description
            Resume Exit_Chargement
    End Select
    
End Sub


0