manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008
-
23 janv. 2008 à 09:42
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008
-
24 janv. 2008 à 08:58
Bonjour,
je suis actuellement en train de développer une application et j'aurai besoin d'aide concernant la modification de donnée présente dans une table access depuis un module vba.
Le but est de modifier des adresses par exemple :
2 ET app 14 Les Pyrenees (ceci est contenu dans un seul champ)
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 23 janv. 2008 à 10:39
Je pense que tu devrais tout simplement te faire un bouton qui te lance une requete UPDATE avec les 3 champs renseignés. Détailles nous un peu plus ton projet.
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 23 janv. 2008 à 11:20
merci de repondre
Mon projet est telle que a partir d'une adresse donnée je doit retrouve un code invariant liée à un local, ce local a une adresse avec avec une mise en forme strict comme je l'ai montrer sur le premier post de ce faite je doit mettre en forme les adresses présente dans la base de donnée.
je ne peut pas rajouter de bouton car je n'ai pas de formulare liée à cette table le traitement sera réaliser automatiquement par l'application mise en place. Pour le moment je souhaiterai seulement réussir à mettre en forme les adresses.
Ce que j'ai fait c'est d'acceder à base de donnée par la fonction suivante:
Private Sub OuvertureBase()
Dim Res As DAO.Recordset
Dim DbsArt As DAO.Database
Dim SQL As String
Dim requete As String
Dim Taille As String
SQL "SELECT CPL_RUE_DOMICILE FROM Election WHERE PATRONYME 'GABINAUD'"
Set Res = CurrentDb.OpenRecordset(SQL)
Res.MoveLast 'on balaie les enregistrements
Res.MoveFirst
Taille = Res.RecordCount 'recuperation du nombre d'enregistrement
requete = Res.Fields(0).Value 'récupération de la valeur de l'enregistrement
MsgBox requete
End Sub
Ensuite il faut mettre en forme se que l'on recupere d'en requete.
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 23 janv. 2008 à 11:30
Dans ce cas la tu peux simplement faire une fonction qui parcourt toute ta base et dans cette boucle tu mets un Replace dans lequel tu transformes ta chaine "et" par "etage" (test ta chaine avant).
_______________________
<<<< :-: 4L!@$ :-: >>>>
Vous n’avez pas trouvé la réponse que vous recherchez ?
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 23 janv. 2008 à 11:45
en effet c'est une solution que j'ai envisagée seulement j'ai une multitude de facon de definir un etage par exemple : ETG, etg, ETGE
requete1 = UCase(requete)
Donc j'ai pencer avant de faire le replace de mettre toute la chaine en majuscule se qui m'enleve le probleme concernant les majuscule en suite je fait la fonction suivante :
SQL1 "UPDATE Election SET " Election.CPL_RUE_DOMICILE Replace(CPL_RUE_DOMICILE,requete1,requete1) WHERE CPL_RUE_DOMICILE Like requete"
DoCmd.RunSQL SQL1
Res.MoveLast 'on balaie les enregistrements
Res.MoveFirst
Taille = Res.RecordCount 'recuperation du nombre d'enregistrement
MsgBox Res.Fields(0).Value
Le probleme est qu'il y a probablement une erreur au niveau de la requete
alias666
Messages postés308Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention23 mars 2010 23 janv. 2008 à 11:55
ya une double cote en trop non ?
SQL1 "UPDATE Election SET " Election.CPL_RUE_DOMICILE Replace(CPL_RUE_DOMICILE,requete1,requete) WHERE CPL_RUE_DOMICILE Like
requete"
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 23 janv. 2008 à 13:43
Private Sub OuvertureBase()
Dim Res As DAO.Recordset
Dim DbsArt As DAO.Database
Dim SQL As String
Dim SQL1 As String
Dim requete As String
Dim requete1 As String
Dim Taille As String
SQL "SELECT CPL_RUE_DOMICILE FROM Election WHERE PATRONYME 'GABINAUD'"
Set Res = CurrentDb.OpenRecordset(SQL)
Res.MoveLast 'on balaie les enregistrements
Res.MoveFirst
Taille = Res.RecordCount 'recuperation du nombre d'enregistrement
requete = Res.Fields(0).Value 'récupération de la valeur de l'enregistrement
requete1 = UCase(requete)
MsgBox requete1
SQL1 "UPDATE Election SET Election.CPL_RUE_DOMICILE Replace(CPL_RUE_DOMICILE,requete1,requete) WHERE CPL_RUE_DOMICILE Like requete"
DoCmd.RunSQL SQL1
Res.MoveLast 'on balaie les enregistrements
Res.MoveFirst
Taille = Res.RecordCount 'recuperation du nombre d'enregistrement
MsgBox Res.Fields(0).Value
End Sub
Requete me renvoie bien la chaine que je veut.
Requete1 me renvoie bien la Requete mais mis en majuscule
manhino
Messages postés63Date d'inscriptionjeudi 30 mars 2006StatutMembreDernière intervention 7 août 2008 23 janv. 2008 à 14:16
Je doit toujours entrer des valeur de parametre pour les variable requete et requete 1, si je ne fixe pas le valeur le programme va remplacer par des espce vide les champs sélectionnée dans la premiere requete sql.
S'affiche alors un message d'erreur concernant :
MsgBox Res.Fields(0).Value