Miss_Am
Messages postés15Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention20 juillet 2005
-
8 juil. 2005 à 17:10
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006
-
6 sept. 2005 à 10:51
Bonjour à tous et à toutes...
Je suis actuellement en train de faire une base de données access/vba
Voila ce que je cherche à faire...
J'ai fait un formulaire de Devis
Pour chaque lignes enregitrées dans mon devis il faut que ca génère une demande de devis au fournisseur
Pour cela j'ai un sous formulaire avec les lignes de demande de devis.
Pour l'instant j'arrive à rentrer dans la zone de liste le nom du fournisseur (1er pb comment supprimer les doublons??? car ca me rajoute à chaque fois le nom du fournisseur meme s'il est deja dans la liste!!!)
Ca bloque sur le premier enregistrement (cad qu'on peut rentrer qu'une seule ligne par demande)
Je pense que ca ne passe pas à l'enregistrement suivant à chaque fois que je rentre un nouveau produit.
Voila un bout de mon code....
Voila le code quand on modifie la référence dans le devis.
Private Sub Référence_AfterUpdate()
Dim verif As Boolean
verif = True
Form_SFDemandeDevis.Fournisseur.SetFocus
If [Form_SFDemandeDevis].Fournisseur.Text <> "" Then
For i = 0 To [Form_SFDemandeDevis].Fournisseur.ListCount
If [Form_SFDemandeDevis].Fournisseur.ItemData(i) = FR Then
verif = False
i = [Form_SFDemandeDevis].Fournisseur.ListCount
End If
Next
End If
If verif = True Then
[Form_SFDemandeDevis].Fournisseur.AddItem (FR)
End If
'Je sais que ma boucle est bizarre, elle vise à enlever les doublons mais ca marche pas trop!!!
[Form_SFLignesDemandeDevis].Désignation.SetFocus
[Form_SFLignesDemandeDevis].Désignation = DES
[Form_SFLignesDemandeDevis].Référence = REF
[Form_SFLignesDemandeDevis].Marque = MAR
[Form_SFLignesDemandeDevis].Désignation = DES
[Form_SFLignesDemandeDevis].Catégorie = CAT
[Form_SFLignesDemandeDevis].Quantité = QUTE
[Form_SFLignesDemandeDevis].Fournisseur = FR
End If
End Sub
Ca c'est le code pour la référence qui est dans les lignes de Demande de Devis
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 20052 8 juil. 2005 à 18:27
Salut tous
Pour ma part je te conseil de rester en DAO car faire du VBA sous Access avec table et code dans le même Access préfère largement le DAO! Utiliser une connexion pour que Access se connect a lui même heuuuu ... c'est domage je trouve
Je te propose ceci
Dim rs as recordsetSet rs currentdb.openrecordset("SELECT * FROM maTable WHERE monChamp ' " & [Form_SFDemandeDevis].Fournisseur.Text & " ' )
if rs.EOF and rs.BOF then currentDb.execute "INSERT INTO MaTable (MonChamp) VALUE( ' " & [Form_SFDemandeDevis].Fournisseur.Text & " ' )"
Voilou après le code que t'a écris K_Soze marche très bien si tu préfère
Miss_Am
Messages postés15Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention20 juillet 2005 11 juil. 2005 à 09:53
Merci à tous les deux!!!
Je suis désolée PtitGRumo mais j'ai pas tout compris à ton code...je pense que c parce que je suis pas douée.....
Sinon je trouve le code K_SoZe très clair....j'ai meme bien compris!!!!
(euh.....juste un truc.... "ligne"....ca va me prendre toute le ligne ou faut que je fasse plusieurs variables, une pour chaque champ de la ligne....genre.... désignation ,quantité etc...)
Le ptit soucis reste que ma base fonctionne pour l'instant sur un ordinateur avec des sessions windows et qu'en plus elle va etre amenée à fonctionner en réseau...D'ou mon soucis avec les recordsets.....la dernière fois que j'ai essayé de faire un connexion ca m'a sorti un message d'erreur sur "cnx.open" genre la base a été enregistrer par X donc l'utilisateur administrateur ne peut pas ouvrir cette connexion.....(à peu près).
Don cj'ai un peu peur que ca me refasse pareil ce coup-ci...je vais essayer. Je vous dirais....
Miss_Am
Messages postés15Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention20 juillet 2005 11 juil. 2005 à 10:18
Euh.....Petit pb inattendu....Si j'utilise ce code....Ca me dit....
Impossible d'utiliser cette connection pour effectuer cette opération.Elle est fermée ou non valide dans ce contexte.....
???????Help.....j'y connais rien la dedans....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Miss_Am
Messages postés15Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention20 juillet 2005 11 juil. 2005 à 10:58
Euh.....Petit pb inattendu....Si j'utilise ce code....Ca me dit....
Impossible d'utiliser cette connection pour effectuer cette opération.Elle est fermée ou non valide dans ce contexte.....
???????Help.....j'y connais rien la dedans....
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 20052 11 juil. 2005 à 11:07
En fait tu utilise une connexion ADODB
C'est si tu préfère un chemin que tu construit entre tes données et ton programme par lequel tu va pouvoir transporter tes information.
Ensuite ton chemin en question peut avoir plusieurs forme! Il peut être en béton, en pavé, en terre, ... tu as donc plusieurs type de chemin (conexion) . Il faut donc préciser comment utiliser ce chemin!
C'est pareil pour Access! tu doit lui donner le mode d'emploi pour utiliser la connexion.
Va donc sur une page de code de ton access! fait Outil --> référence et dans référence coche Microsoft ActiveX Data Objet X.XX
Enregistre ton projet et déjà ca devrai mieu marcher!
Pour en revenir a ma solution, je n'utilise pas de chemin pour aller a mes données vu que mes donnée sont déjà sur place.
Ainsi j'utilise comme "Connexion" CurrentDb qui tout simplement veu dire ma base de donnée actuelle , ou va chercher la ou je suis!
Bon c'est un peu enfantin comme explication mais ca shématise bien le sujet.
c'est donc plus propre et plus performant de dire je prend les donnée la ou je suis plutot que de partir sur un chemin qui t'emmène au final au même point de départ. hum ché pas si tu as compris lol!
Mais bon le tout pour toi pour le moment est de comprendre alors reste sur le code de K_soze qui est très bien écris surtout si ce code te parle plus..
Aller bon code a toi et tien moi au courant si ca ne marche toujours pas!
PtitGrumo
essai de remplacer currentproject.accessconnection par currentdb.Connection
Miss_Am
Messages postés15Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention20 juillet 2005 11 juil. 2005 à 12:04
En fait j'ai dans mon code...
Dim cx As ADODB.Connection
Dim rs As ADODB.Recordset
Set cx = CurrentDb.Connection
Set rs = New ADODB.Recordset
Est-ce vraiment compatible parce que la compilation bloque sur la 2eme ligne en gras et me dit que l'opération n'est pas autorisée pour ce type d'objet....