Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déclaration de variable = plantage

3 réponses
Avatar
Xavier powaga
Bonjour à tous,
mon programme excel fait appel à une base access (rien de bien compliqué)

voici un bout de code simplifié qui marche bien

requete.Sql = ...blabla bla
1: Set db_di = DB.OpenRecordset("Cherchecommentaire", dbopendynaset)
2: If db_di.EOF Then
3: With db_di
4: .AddNew
5: .[N°DI] = "Toto"

J'ai souhaité rendre public la variable db_di, j'ai donc mis en début de
module :
Public db_di As Recordset

et là impossible de compiler car en ligne 5 il m'indique "membre de méthode
ou de données introuvable"
pour que ça passe il faut que je modifie la ligne 5 comme suit :

.Fields("N°DI")="Toto"

Avez vous une idée sur cette problématique ?
merci

3 réponses

Avatar
JB
Bonjour,

Sur mon poste, la syntaxe .[N°DI] = "Toto" n'est pas valide (Access
2002)

JB


On 17 fév, 09:55, "Xavier powaga" wrote:
Bonjour à tous,
mon programme excel fait appel à une base access (rien de bien compliqu é)

voici un bout de code simplifié qui marche bien

requete.Sql = ...blabla bla
1:    Set db_di = DB.OpenRecordset("Cherchecommentaire", dbopendynas et)
2:   If db_di.EOF Then
3:        With db_di
4:            .AddNew
5:            .[N°DI] = "Toto"

J'ai souhaité rendre public la variable db_di, j'ai donc mis en début de
module :
Public  db_di As Recordset

et là impossible de compiler car  en ligne 5 il m'indique "membre de m éthode
ou de données introuvable"
pour que ça passe il faut que je modifie la ligne 5 comme suit :

      .Fields("N°DI")="Toto"

Avez vous une idée sur cette problématique ?
merci


Avatar
francois.forcet
On 17 fév, 09:55, "Xavier powaga" wrote:
Bonjour à tous,
mon programme excel fait appel à une base access (rien de bien compliqu é)

voici un bout de code simplifié qui marche bien

requete.Sql = ...blabla bla
1:    Set db_di = DB.OpenRecordset("Cherchecommentaire", dbopendynas et)
2:   If db_di.EOF Then
3:        With db_di
4:            .AddNew
5:            .[N°DI] = "Toto"

J'ai souhaité rendre public la variable db_di, j'ai donc mis en début de
module :
Public  db_di As Recordset

et là impossible de compiler car  en ligne 5 il m'indique "membre de m éthode
ou de données introuvable"
pour que ça passe il faut que je modifie la ligne 5 comme suit :

      .Fields("N°DI")="Toto"

Avez vous une idée sur cette problématique ?
merci


Salut à toi

Une variable déclaré Publique est un élément unique dont la valeur
évolue au grés des codes cette évolution étant reprise à chaque mo dule

Or ta variable Publique n'est pas un élément unique mais un ensemble
d'éléments représenté par tous les enregistrements de ta table Acces s
"Cherchecommentaire"

On peux difficilement faire à la fois référence à une variable déc laré
Publique et un jeu d'enregistrement
Public db_di As Recordset fait référence à 1 enregistrement
Set db_di = DB.OpenRecordset("Cherchecommentaire", dbopendynaset)
fait référence à tous les enregistrement de la table
"Cherchecommentaire"
Je pense que ton souci viens de cette incohérence
Que cherche tu à faire en voulant déclarer cette variable ????
Avec
.Fields("N°DI")="Toto"
Toutes les occurences n'ont elles pas la valeur "Toto" dans le champ N
°DI ?????
Or je pense que c'est l'occurence ajoutée qui seule doit dans ce champ
là avoir cette valeur
Mais n'étant pas repèrable du fait de la déclaration variable Public
celà coince
Je peux me tromper mais je pense que là se situe ta difficulté

Avatar
Xavier powaga
merci François et Jb

Ma question avait pour but de comprendre pourquoi sans déclaration de
variable une syntaxe marchait et pourquoi après déclaration elle ne marchait
plus
Ta réponse françois m'éclaire parfaitement. J'ai besoin de déclarer ma
variable car je m'en sert dans plusieurs procédures et lorsque je passe
d'une procédure à l'autre, je la perd si je ne l'ai pas déclaré.

Je vais donc modifier ma syntaxe

Merci

a écrit dans le message de news:

On 17 fév, 09:55, "Xavier powaga" wrote:
Bonjour à tous,
mon programme excel fait appel à une base access (rien de bien compliqué)

voici un bout de code simplifié qui marche bien

requete.Sql = ...blabla bla
1: Set db_di = DB.OpenRecordset("Cherchecommentaire", dbopendynaset)
2: If db_di.EOF Then
3: With db_di
4: .AddNew
5: .[N°DI] = "Toto"

J'ai souhaité rendre public la variable db_di, j'ai donc mis en début de
module :
Public db_di As Recordset

et là impossible de compiler car en ligne 5 il m'indique "membre de
méthode
ou de données introuvable"
pour que ça passe il faut que je modifie la ligne 5 comme suit :

.Fields("N°DI")="Toto"

Avez vous une idée sur cette problématique ?
merci


Salut à toi

Une variable déclaré Publique est un élément unique dont la valeur
évolue au grés des codes cette évolution étant reprise à chaque module

Or ta variable Publique n'est pas un élément unique mais un ensemble
d'éléments représenté par tous les enregistrements de ta table Access
"Cherchecommentaire"

On peux difficilement faire à la fois référence à une variable déclaré
Publique et un jeu d'enregistrement
Public db_di As Recordset fait référence à 1 enregistrement
Set db_di = DB.OpenRecordset("Cherchecommentaire", dbopendynaset)
fait référence à tous les enregistrement de la table
"Cherchecommentaire"
Je pense que ton souci viens de cette incohérence
Que cherche tu à faire en voulant déclarer cette variable ????
Avec
.Fields("N°DI")="Toto"
Toutes les occurences n'ont elles pas la valeur "Toto" dans le champ N
°DI ?????
Or je pense que c'est l'occurence ajoutée qui seule doit dans ce champ
là avoir cette valeur
Mais n'étant pas repèrable du fait de la déclaration variable Public
celà coince
Je peux me tromper mais je pense que là se situe ta difficulté