Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2012, 21h03   #1
Invité de passage
 
Homme Azo Azomix
Étudiant
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme Azo Azomix
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant
Secteur : Transports

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Par défaut Problème de requete INSERT INTO en VBA

Bonjour tout le monde,

Voila , j ai un petit souci, Je récupère des informations à partir d'un formulaire et je souhaite rentrer ces valeurs dans mes tables access à l'aide d'une requete INSERT INTO. Mon problème est que la requete à l'air de fonctionner correctement car je n'ai aucune erreur, mais aucune des valeurs ne s'intègre dans ma table.

Voici le schéma de mes tables access :

http://imageshack.us/photo/my-images...eauaccess.png/

J'ai pensé que cela pouvait être un problème de jointure. J'ai testé en passant les relations en type jointure 2 et 3 mais rien n'a changé.

Voici le code de ma requete SQL :



Code :
1
2
3
4
5
6
Set db = CurrentDb
 
db.Execute " INSERT INTO  Ligne_de_facture_livraison ( N°Produit, N°facture_livraison, Quantite_produit, Quantite_casse, Quantite_vol, Quantite_perte ) VALUES (" & num_produit & "," & num_facture & "," & nouveau_stock1 & "," & nouveau_casse1 & "," & nouveau_vol1 & "," & nouveau_perte1 & ");"
 
Debug.Print "Records affected = " & db.RecordsAffected
db.Close
J’espère que vous pourrez m'éclairer car je vient de passer ma journée sur ce problème sans résultat.

Merci

Cordialement

MCB
Azomix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 22h13   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 255
Points : 5 255
Salut,

num_produit , num_facture.. sont-ce des variables ou des zones de texte ?

Peux-t-on voir le code en amont ?

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 22h37   #3
Invité de passage
 
Homme Azo Azomix
Étudiant
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme Azo Azomix
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant
Secteur : Transports

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Voila mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
   

    num_facture = N°facture_livraison.Value
    MsgBox num_facture   
    If nouveau_stock1 <> 0 Then   
        StrSql1 = "UPDATE Produit Set [Quantite_stock]='" & nouveau_stock1 & "' WHERE [désignation]='" & produit1.Value & "'"
        Set Req1 = CurrentDb.CreateQueryDef("", StrSql1)
        Req1.Execute dbFailOnError
        
        sSQL6 = "Select N°Produit From  Produit WHERE Produit.désignation='" & produit1.Value & "';"
        Set rst6 = CurrentDb.OpenRecordset(sSQL6, dbOpenForwardOnly, dbReadOnly)
        num_produit = rst6![N°Produit]
        rst6.Close
                
        If nouveau_casse1 <> 0 Then
                sSQL7 = "Select N°Anomalie From  anomalie WHERE anomalie.type_anomalie='casse';"
                Set rst7 = CurrentDb.OpenRecordset(sSQL7, dbOpenForwardOnly, dbReadOnly)
                num_casse = rst7![N°Anomalie]
                rst7.Close
                
                stock_casse1 = DLookup("[stock_anomalie]", "Stock_anomalie", "[N°Produit] = " & num_produit & " AND [N°Anomalie] =  " & num_casse & "")
                
                stock_casse1 = stock_casse1 + quantite1.Value
        
              StrSql2 = "UPDATE Stock_anomalie Set [stock_anomalie]='" & stock_casse1 & " ' WHERE [N°Produit] = " & num_produit & " AND  [N°Anomalie] = " & num_casse & ""
              Set Req2 = CurrentDb.CreateQueryDef("", StrSql2)
              Req2.Execute dbFailOnError
        End If
        
        If nouveau_vol1 <> 0 Then
                sSQL7 = "Select N°Anomalie From  anomalie WHERE anomalie.type_anomalie='vol';"
                Set rst7 = CurrentDb.OpenRecordset(sSQL7, dbOpenForwardOnly, dbReadOnly)
                num_casse = rst7![N°Anomalie]
                rst7.Close
                
                stock_vol1 = DLookup("[stock_anomalie]", "Stock_anomalie", "[N°Produit] = " & num_produit & " AND [N°Anomalie] =  " & num_casse & "")
                
                stock_vol1 = stock_casse1 + quantite1.Value
        
              StrSql2 = "UPDATE Stock_anomalie Set [stock_anomalie]='" & stock_vol1 & " ' WHERE [N°Produit] = " & num_produit & " AND  [N°Anomalie] = " & num_casse & ""
              Set Req2 = CurrentDb.CreateQueryDef("", StrSql2)
              Req2.Execute dbFailOnError
              
        End If
        
        If nouveau_perte1 <> 0 Then
                sSQL7 = "Select N°Anomalie From  anomalie WHERE anomalie.type_anomalie='perte';"
                Set rst7 = CurrentDb.OpenRecordset(sSQL7, dbOpenForwardOnly, dbReadOnly)
                num_casse = rst7![N°Anomalie]
                rst7.Close
                
                stock_perte1 = DLookup("[stock_anomalie]", "Stock_anomalie", "[N°Produit] = " & num_produit & " AND [N°Anomalie] =  " & num_casse & "")
                
                stock_perte1 = stock_perte1 + quantite1.Value
        
              StrSql2 = "UPDATE Stock_anomalie Set [stock_anomalie]='" & stock_perte1 & " ' WHERE [N°Produit] = " & num_produit & " AND  [N°Anomalie] = " & num_casse & ""
            
              Set Req2 = CurrentDb.CreateQueryDef("", StrSql2)
              Req2.Execute dbFailOnError
              
        End If  
 
        Set db = CurrentDb
        db.Execute " INSERT INTO  Ligne_de_facture_livraison ( N°Produit, N°facture_livraison, Quantite_produit, Quantite_casse, Quantite_vol, Quantite_perte ) VALUES (" & num_produit & "," & num_facture & "," & nouveau_stock1 & "," & nouveau_casse1 & "," & nouveau_vol1 & "," & nouveau_perte1 & ");"
       Debug.Print "Records affected = " & db.RecordsAffected
      db.Close
        
        Set db = CurrentDb
        db.Execute " INSERT INTO Facture_livraison ( Date_facture_livraison, N°Fournisseur ) VALUES(" & date_reception & "," & Form_Commande_fournisseur.TMP_FOURNISSEUR & ");"
        Debug.Print "Records affected = " & db.RecordsAffected
        db.Close
    End If
donc num_facture, num_produit sont des variables.

Merci de ton aide
Azomix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 17h20   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 255
Points : 5 255
Slt,

nouveau_stock1 est aussi une variable.

Je ne vois nulle part ou tu l'initialises
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 16h57   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 622
Points : 11 622
Bonjour,

Avec les relations active on crée d'abord l'enregistrement dans la table mère et ensuite dans la table enfant. Ici il me semble que tu fais le contraire.

inverse les 2 requêtes.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h18.


 
 
 
 
Partenaires

Hébergement Web