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 30/11/2010, 13h42   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Par défaut [VBA-SQL] Mise à jour d'un memo - #Deleted

Bonjour à tous,

J'ai un petit soucis avec la mise à jour d'un champ mémo à travers un formulaire avec access.

Ce mémo sert d'historique pour la tracabilité des actions, j'y rajoute donc souvent des lignes d'événements avec la notion de qui, quand, quoi.

Pour ce faire je fais une query update, basée sur la clef primaire de ma table.

Mon code fonctionne bien dans certains cas et pas dans d'autre, et je n'arrive pas à comprendre pourquoi.

Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub addToHisto(TextToAdd As String, comment As String)
    Dim query As String
 
    query = "update tbl_suspense SET tbl_suspense.Suspense_history = '"
    query = query & Form_frm_main.txt_firstname & "'&' '&'" & Form_frm_main.txt_familyname
    query = query & "'&' - '&'" & Now() & "'&' - '&'" & comment
    query = query & "'& Chr(13) & Chr(10) &'"
    query = query & TextToAdd & "'& Chr(13) & Chr(10) & Chr(13) & Chr(10) &"
    query = query & " [tbl_suspense]![Suspense_History] WHERE ((tbl_suspense.id)= " & Form_frm_Suspense.id& ");"
 
    DoCmd.SetWarnings False
        CurrentDb.Execute query
    DoCmd.SetWarnings True
 
    txt_historique.Requery
End Sub
Ce code fonctionne pour ce que j'appelle un "free comment", c'est à dire quand je rajoute à l'historique le contenu d'un txtbox et ne fonctionne pas quand je rajoute le changement d'une listbox (dans l'événement AfterUpdate ).

Quand je le fais depuis un bouton pour rajouter un "Free comment" :

Code :
1
2
3
4
Private Sub Btn_addComment_Click()
    addToHisto txt_addcomment, "Free Comment"
    txt_addcomment = ""
End Sub
Quand je le fais depuis le AfterUpdate j'appelle de cette manière :

Code :
1
2
3
Private Sub nb_reason_AfterUpdate()
    addToHisto lbox_reason.Column(lbox_reason.ListIndex, 1), "Reason"
End Sub
J'ai contrôlé que la valeur que je sors de mon listbox est bien un string.

Et au final mon mémo affiche "#Deleted" ou "#Error"

J'ai bien sur fait un tour sur internet/forums mais je n'ai rien trouvé de pertinent. J'ai tenté d'ajouter le contenu de ma listbox depuis un bouton, mais cela ne change rien au problème.

Si vous avez une idée se serait le pied ^^

Edit : J'ai oublié de préciser que je suis seul sur la base/les tables donc à priori pas de soucis de ce coté là
memorex85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 16h00   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 238
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 238
Points : 11 025
Points : 11 025
Bonjour,
pour faciliter la lecture de ton code, peux-tu
1° ajouter un juste avant CurrentDb.Execute query

2° mettre en commentaire
Code :
'DoCmd.SetWarnings False
3° provoquer l'exécution du code
4° poster le sql
4° et nous donner le message Access éventuel
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 16h15   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Merci pour te réponse, voici les éléments demandés :

Alors la query après le "free comment"

Code :
update tbl_suspense SET tbl_suspense.Suspense_history = 'Prenom'&' '&'Nom'&' - '&'30.11.2010 16:02:07'&' - '&'Free Comment'& Chr(13) & Chr(10) &'TEST'& Chr(13) & Chr(10) & Chr(13) & Chr(10) & [tbl_suspense]![Suspense_History] WHERE ((tbl_suspense.id)= 782447);
Ici tout va bien, le mémo c'est bien updater et je peux quitter le formulaire sans soucis.



Après le listbox :

Code :
update tbl_suspense SET tbl_suspense.Suspense_history = 'Prenom'&' '&'Nom'&' - '&'30.11.2010 16:08:03'&' - '&'List Box'& Chr(13) & Chr(10) &'TEST'& Chr(13) & Chr(10) & Chr(13) & Chr(10) & [tbl_suspense]![Suspense_History] WHERE ((tbl_suspense.id)= 782447);
Aucune erreur de la part d'accès, il m'affiche juste #Deleted dans le champ mémo.

Quand je veux quitter le formulaire, il me dit :
Citation:
"Write Conflict"
The record has been changed by another user since you started editing it. If you save the record, you will overwrite the changes the other user made.

Copying the changes to the clipboard will let you look at te values the other user entered, and then past your changes back in if you decide to make changes Save record - Copy to Clipboard - Drop Changes
Le soucis c'est que je suis seul sur cette base/table, que l'enregistrement en question dans aucun autre formulaire...
memorex85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 16h42   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 238
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 238
Points : 11 025
Points : 11 025
Je ne vois pas ce qui peut faire problème.
"List box" est peut-être protégé.
Fais un essai en changeant --> "aa", mais sans conviction.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 16h47   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
ça me rassure un peu que la réponse ne soit pas évidente... ça fait 24h que je me prend la tête avec ce soucis.

J'ai déjà changé tout les noms, identifiants etc sans succès.

Ce qui me sidère c'est que j'envoi dans les deux cas uniquement du texte et que je ne comprend pas d'ou peut provenir la différence qui fait exploser access
memorex85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 16h53   #6
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 238
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 238
Points : 11 025
Points : 11 025
Explique comment tu déclenches le processus
1° quand ça marche
2° quand ça ne marche pas
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 10h36   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Pour finir j'ai changé de manière de faire, je me suis fais une table d'historisation pour stocker tout ça, et depuis aucun soucis...

Fuire devant les soucis c'est pas l'idéal, mais là j'ai des contraintes de temps...

Un grand merci à toi pour avoir pris le temps de te pencher sur mon soucis.

Bye !

Memorex
memorex85 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 03h30.


 
 
 
 
Partenaires

Hébergement Web