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 11/07/2011, 14h01   #1
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 5
Points : 5
Par défaut Erreur d’exécution 94

Bonjour,

Voila j'ai un petit souci, qui à mon avis doit être très simple à résoudre, mais je ne vois pas du tout la solution ...

Je cherche à enregistrer dans une base de données le contenu d'un formulaire. Le problème n'est pas l'enregistrement mais l'affectation des contenues des textbox à une variable 'string'.

Variable = textbox.value

Lorsque mon champ est vide, l'erreur 94 apparaît et me dis que j'utilise Null incorrectement, pourtant cette affectation fonctionne parfaitement sur les autres champs...

Si quelqu’un peut m'aider

Merci !
Kuky18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 17h40   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Ceci devrait résoudre ton problème.

Code :
1
2
3
if not isnull(Me.NomTaTextBox) then
   taVariable=Me.NomTaTextBox
end if
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 00h05   #3
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 5
Points : 5
OK merci, mais je trouve bizarre que l'on ne puisse pas affecter une chaîne vide à une variable 'String'...
Kuky18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 00h14   #4
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 5
Points : 5
Je viens de penser à un truc...

Est il possible de parcourir l'ensemble de mes textboxs avec une boucle afin de tester si elles sont vide ou remplies ?
Kuky18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 00h38   #5
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 5
Points : 5
J'ai trouvé ce morceau de code sur le net qui permet de réinitialiser les TextBox à la volé mais je ne sait pas comment faire un test sur la valeur de chacune d'entre elle...

Code :
1
2
3
4
5
6
7
 
Dim ctrl As Control
For Each ctrl In Userform01.MultiPage2.Pages(2).Controls
     If TypeOf ctrl Is MSForms.TextBox Then
     ctrl.Value = ""
     End If
Next
If TypeOf ctrl Is MSForms.TextBox and ctrl.value = empty Then

Mais cela ne fonctionne pas, c'est un probleme d'objet apparement...
Kuky18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 18h32   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Code :
1
2
3
4
5
6
7
8
Dim ctrl As Control
For Each ctrl In Userform01.MultiPage2.Pages(2).Controls
     If TypeOf ctrl Is MSForms.TextBox Then
       if isempty(ctrl) then
          ctrl.Value = ""
       end if
     End If
Next
Sur un nouvel enregistrement Access initialise généralement les champs textes à Empty qui est différent de Null et qui n'est pas une chaîne vide non plus.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 19h23   #7
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 5
Points : 5
Pour être plus précis dans l'énoncé de mon problème, lors de l'ouverture de mon formulaire, j'initialise chaque textbox avec la valeur "".

La solution que vous me proposez ne fonctionne pas, il semblerais que l'objet ctrl ne dispose pas de la méthode "value"...
Kuky18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 21h21   #8
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Essaye :

Code :
1
2
3
4
5
6
7
8
Dim ctrl As Control
For Each ctrl In Userform01.MultiPage2.Pages(2).Controls
     If TypeOf ctrl Is MSForms.TextBox Then
       if isempty(ctrl) then
          ctrl = ""
       end if
     End If
Next
Ça devrait marché.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 16h15   #9
Invité régulier
 
Homme
Étudiant
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 5
Points : 5
Bonjour,

J'ai résolu mon problème en utilisant ce code :

Code :
1
2
3
4
5
6
7
8
 
For Each Zone In Forms.NomFormulaire.Controls
     If Zone.ControlType = acTextBox Then
        If IsEmpty(Zone.Value) Then
            Zone.Value = ""
        End If
    End If
Next
Une partie du problème résidait dans le fait que lorsque je récupérais un enregistrement de ma base toutes les textboxs correspondantes obtenais la valeur 'Null' (rien d'extraordinaire !). Donc avant une modification/enregistrement, j'utilise ce code afin de purifier mes textboxs.

En vous remerciant pour vos remarques !

Sujet résolu
Kuky18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h48.


 
 
 
 
Partenaires

Hébergement Web