IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Calcul de besoin de matière Première


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Calcul de besoin de matière Première
    Bonjour

    j ai besoin d'aide pour terminer mon projet de PFE

    Voilà ce qui se passe j ai plein d erreur au niveau de compilation du fichier
    y a t il qq1 qui porrait m eclaircir certaine choses

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il serait bon de détailler ce qui ne va pas, de plus ton zip est incomplet et tout le monde ne compilera pas pour toi.

    Donc des détails sur le problème rencontré.

    Philippe

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    oui désolé

    au fait quand je clic sur commande 1 il faut qu'il me donne les données sur le fichier access dans la table imprimées, ensuite je choisis un code matière [combo1, 10C .....], ensuite cliquer sur commande 2 pour chercher dans la table Production [fichier Access] la répartition, le nombre d'exemplaire par feuille

    Mais dés que je clic sur commande 2 j'obtiens un message d'erreur de débogage.


    Je viens de uploader le fichier avec la base access
    Fichiers attachés Fichiers attachés

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Tu devrais donner plus d'explications avec le code à l'appui, car tout le monde ne télécharge pas les fichiers.

    Philippe

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    dans le fichier Access il y a les tables qui contiennent les détails des articles
    ceci est le code sources pour le calcul



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub Command1_Click()
    Dim maconnexion As New ADODB.Connection
    Dim sql1 As String
    Dim sql4 As String
    Dim sql2 As String
    Dim sql3 As String
    Dim rec1 As New ADODB.Recordset
    Dim rec2 As New ADODB.Recordset
    Dim rec3 As New ADODB.Recordset
    Dim rec4 As New ADODB.Recordset
    maconnexion.ConnectionString = "DSN=imprimerie2007"
    maconnexion.Open
     
    sql1 = "select code_imprimee from imprimée"
     
    Set rec1 = maconnexion.Execute(sql1)
    While (rec1.EOF = False)
    Combo1.AddItem rec1.Fields(0)
    a = Combo1.Text
    rec1.MoveNext
    Wend
    rec1.Close
     
     
     
    End Sub
     
    Private Sub Command2_Click()
    Dim maconnexion As New ADODB.Connection
     
    Dim sql1 As String
    Dim sql2 As String
    Dim sql3 As String
     
    Dim rec1 As New ADODB.Recordset
    Dim rec2 As New ADODB.Recordset
    Dim rec3 As New ADODB.Recordset
     
    maconnexion.ConnectionString = "DSN=imprimerie2007"
    maconnexion.Open
    '"""""""""""""""""
    sql1 = "select qantité from imprimée Where code_imprimee = combo1"
    q = rec1
    Set rec1 = maconnexion.Execute(sql1)
     
    sql2 = "SELECT  FROM production WHERE ( code_imprimee= combo1)"
    Set rec2 = maconnexion.Execute(sql2)
    While code_imprimee = Combo1
    Wend
    x = rec2.Fields(4) * q / rec2.Fields(3)
    While (rec3.EOF = False)
     
    sql3 = " update besoin from matiere_1 Set besoin = besoin + x Where rc2.Fields(1) = code_matiére1"
    Set rec3 = maconnexion.Execute(sql3)
       rec3.MoveNext
        Wend
     rec3.Close
     
     
    End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir tt le monde,

    je ne peux pas vraiment t'aider sur ton problème, malgré tout, une chose me choque: la présence de caractères accentués comme désignation de champs et de table. J'espère que tu trouveras la solution à ton problème

  7. #7
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Dans ta table mprimée, as tu la valeur "combo1" qui existe dans ton champs "qantité ", si oui ta requête sql1 est incorrecte, si non elle est aussi incorrecte
    voici comment tu l' écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql1 = "select qantité from imprimée Where code_imprimee = combo1"
    Je pense qu'en fait tu devrais faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql1 = "select qantité from imprimée Where code_imprimee =" &  combo1
    Ce qui fonctionnera si ton combo1 contient une valeur numérique et que le champs "code_imprimee" est défini de type nombre. Il est plus probable que ce champ soit de type texte, il faudrait alors écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql1 = "select qantité from imprimée Where code_imprimee = '" &  combo1 & "' "
    Ta requête sql2 a le même type de problème, mais en plus tu ne précise pas quel champs tu veux sélectionner, mets quelque chose de valide à la place des xxxxx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql2 = "SELECT xxxxxx FROM production WHERE  code_imprimee= '" & combo1 & "' "
    Je pense que tu devrais avoir compris ce quil faut faire pour ta requête sql3
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  8. #8
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    j'ai trouver la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Dim maconnexion As New ADODB.Connection
     
    Dim sql1 As String
    Dim sql2 As String
    Dim sql3 As String
    Dim sql4 As String
    Dim sql5 As String
     
    Dim b As Integer
     
    Dim rec1 As New ADODB.Recordset
    Dim rec2 As New ADODB.Recordset
    Dim rec3 As New ADODB.Recordset
    Dim rec4 As New ADODB.Recordset
    Dim rec5 As New ADODB.Recordset
     
    maconnexion.ConnectionString = "DSN=imprimerie2007"
    maconnexion.Open
    sql5 = "update matiere_1 set besoin =  " & 0 & "" 
       Set rec5 = maconnexion.Execute(sql5)
     
    sql1 = "select * from imprimée"
    Set rec1 = maconnexion.Execute(sql1)
     
    While rec1.EOF = False
     
    q = rec1.Fields(1)
     
     
    sql2 = "SELECT *  FROM production WHERE code_imprimee= '" & rec1.Fields(0) & "'"
    Set rec2 = maconnexion.Execute(sql2)
     
    While rec2.EOF = False
     
     
        x = rec2.Fields(3) * q / rec2.Fields(2)
     
       sql4 = "select * from matiere_1 where code_matiére1=" & rec2.Fields(1) & ""
       Set rec4 = maconnexion.Execute(sql4)
     
     
    b = rec4.Fields(4)
    b = b + x
     
       sql3 = "update matiere_1 set besoin =  " & b & " where code_matiére1=" & rec2.Fields(1) & ""
       Set rec3 = maconnexion.Execute(sql3)
     
     
       rec2.MoveNext
       Wend
       rec2.Close
       rec1.MoveNext
    Wend
      rec1.Close

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 123
    Points : 117
    Points
    117
    Par défaut
    Salut,
    Pense à cliquer sur la balise , si ton problème est réglé.

  10. #10
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour

    j ai besoin d'aide pour terminer mon projet de PFE

    je voudrais savoir comment afficher un formulaire access à partir de visual basic 6.
    je vous prie de les expliciter afin que je puisse saisir pleinement
    merci de bien vouloir m'aider

  11. #11
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    C'est simple, on ne peut pas , à ma connaissance
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Un formulaire Access étant obligatoirement contenu dans une fenêtre Access il faudrait pouvoir voir cette fenêtre dans une forme VB, et après mettre ce formulaire en plein écran pour masquer la fenêtre Access (pour cela il y a des possibilités dans le forum Access).

    Le hic est de mettre Access dans une form VB, et de plus je ne sais pas si tu pourras intervenir dans ce formulaire, il sera vu comme un tout à mon avis.

    Philippe

  13. #13
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Sauf à ce que je n'ai rien compris, il ne demande pas qu'Access soit totalement transparent.
    S'il doit gérer un affichage, pourquoi ne pas utiliser DAO plutôt qu'Ado ?
    => .docmd.openform xxx

    J'ai loupé un épisode

  14. #14
    Invité
    Invité(e)
    Par défaut
    Re

    Effectivement c'est loin d'être clair.

    Pour information, la commande DoCmd appartient à l'objet application, donc à Access et cela n'a rien à voir avec DAO ou ADO qui permettent elles d'accéder directement aux tables.

    Philippe

  15. #15
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    slt
    j'ai utiliser ce code pour afficher le formulaire qui me permet d'ajouter des données dans les tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim maconnexion As New ADODB.Connection
     
     
    maconnexion.ConnectionString = "DSN=imprimerie2007"
    maconnexion.Open
    maconnexion.docmd.OpenForm ("frm_production")
    mais toujours il ya un message d'erreur '3001': les arguments sont de type incorrect ,en dehors des limites autoriser ou en conflis les uns avec les autres

  16. #16
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Re

    Effectivement c'est loin d'être clair.

    Pour information, la commande DoCmd appartient à l'objet application, donc à Access et cela n'a rien à voir avec DAO ou ADO qui permettent elles d'accéder directement aux tables.

    Philippe
    Merci. A force de penser qu'on me suit à tous coups dans mes raccourcis de langage,
    il ne faut pas s'étonner que je ne me fasse pas comprendre.
    En fait, je pensais que la sous couche des méthodes de Docmd pour accéder au recordset utilisait DAO
    En clair, => Pour être cohérent avec docmd.OpenForm, autant utiliser les méthodes l'object Access.Application et abandonner l'accès aux données par ADO
    Citation Envoyé par irada Voir le message
    slt
    j'ai utiliser ce code pour afficher le formulaire qui me permet d'ajouter des données dans les tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim maconnexion As New ADODB.Connection
     
     
    maconnexion.ConnectionString = "DSN=imprimerie2007"
    maconnexion.Open
    maconnexion.docmd.OpenForm ("frm_production")
    mais toujours il ya un message d'erreur '3001': les arguments sont de type incorrect ,en dehors des limites autoriser ou en conflis les uns avec les autres
    Voir réponse ci-dessus
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim oAcc as object
    Set oAcc=createobject("access.application")
    oAcc.OpenCurrentDatabase xxx
     
    oAcc.CurrentDb.Execute sql
    oAcc.DoCmd.OpenForm xxx
    mais n'étant pas spécialiste des bases de données, ça n'engage que moi

  17. #17
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    j'ai utilisé ce code mais il y a toujours des message d'erreur :

    D
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    im DB As ADODB.Connection
    Dim RS As Recordset
     
     
    Dim oAcc As Object
    Set oAcc = CreateObject("access.application")
    oAcc.OpenCurrentDatabase xx = imprimerie2007
     
    oAcc.CurrentDb.Execute
    oAcc.DoCmd.OpenForm frm_production
    message d'rreur: microsoft office access n a pas pu ouvrir cette base pcq celle-ci est manquante , a ete ouverte par un autre utilisateur en mode exclusive


    et si j'ajoute ce code
    'Set DB = Openbase("d:\imprimerie2007.mdb")
    message d'erreur : fonction nn defini

Discussions similaires

  1. [MySQL] calcul moyenne d'une matière
    Par quomeiha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/04/2011, 19h13
  2. [AC-2007] Requête calculer le nombre de matières enseignées?
    Par Jeanfoya dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/10/2010, 21h20
  3. Récupérer le cours d'une matière première
    Par david71 dans le forum C#
    Réponses: 1
    Dernier message: 10/05/2007, 17h13
  4. Réponses: 6
    Dernier message: 27/02/2007, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo