Bonjour,
Dans une application faisant appel à une base de données en Access,
un de mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"
Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.
Quelqu'un a-t-il déjà eu ce message ?
Bonjour,
Dans une application faisant appel à une base de données en Access,
un de mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"
Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.
Quelqu'un a-t-il déjà eu ce message ?
Bonjour,
Dans une application faisant appel à une base de données en Access,
un de mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"
Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.
Quelqu'un a-t-il déjà eu ce message ?
pierre.rivet wrote:Bonjour,
Dans une application faisant appel à une base de données en Access,
un de mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"
Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.
Quelqu'un a-t-il déjà eu ce message ?
Hello,
Oui, j'ai déjà eu. C'est lié au fait que certaines DB ne permettent pas
certaines actions avec certains types de curseur, notamment un
curseur coté serveur. Très facile à régler en remettant le curseur
coté client.
Comme de juste, c'est expliqué dans la KB Microsoft:
http://support.microsoft.com/kb/294139/fr
Bonne résolution :-)
Cordialement;
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
pierre.rivet wrote:
Bonjour,
Dans une application faisant appel à une base de données en Access,
un de mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"
Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.
Quelqu'un a-t-il déjà eu ce message ?
Hello,
Oui, j'ai déjà eu. C'est lié au fait que certaines DB ne permettent pas
certaines actions avec certains types de curseur, notamment un
curseur coté serveur. Très facile à régler en remettant le curseur
coté client.
Comme de juste, c'est expliqué dans la KB Microsoft:
http://support.microsoft.com/kb/294139/fr
Bonne résolution :-)
Cordialement;
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
pierre.rivet wrote:Bonjour,
Dans une application faisant appel à une base de données en Access,
un de mes utilisateurs reçoit le message suivant:
"L'ensemble des lignes ne prend pas en charge le défilement arrière"
Apparemment, il voit un fichier de patients sous forme d'un contrôle
Datagrid, et quand il veut afficher les renseignements du patient, il
obtient une fiche vierge.
Quelqu'un a-t-il déjà eu ce message ?
Hello,
Oui, j'ai déjà eu. C'est lié au fait que certaines DB ne permettent pas
certaines actions avec certains types de curseur, notamment un
curseur coté serveur. Très facile à régler en remettant le curseur
coté client.
Comme de juste, c'est expliqué dans la KB Microsoft:
http://support.microsoft.com/kb/294139/fr
Bonne résolution :-)
Cordialement;
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
C'est quoi un curseur ? et un curseur côté client?
C'est quoi un curseur ? et un curseur côté client?
C'est quoi un curseur ? et un curseur côté client?
pierre.rivet wrote:C'est quoi un curseur ? et un curseur côté client?
Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
pierre.rivet wrote:
C'est quoi un curseur ? et un curseur côté client?
Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
pierre.rivet wrote:C'est quoi un curseur ? et un curseur côté client?
Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Patrick Philippot wrote:pierre.rivet wrote:C'est quoi un curseur ? et un curseur côté client?Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Hello,
je complète la réponse en proposant quelques liens:
Tout d'abord un white paper Microsoft, très bien fait,
téléchargeable ici:
http://www.laboratoire-microsoft.org/whitepapers/9989/
ou la en cas de problème:
http://www.laboratoire-microsoft.org/d/d/?id89
Ceci est également très bien fait et très clair, par l'excellente
Susan Sales Harkins:
http://msdn2.microsoft.com/en-us/library/aa140098(office.10).aspx
Avac, ça vous aurez les réponses à toutes vos questions.
Bonne lecture :-)
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Patrick Philippot wrote:
pierre.rivet wrote:
C'est quoi un curseur ? et un curseur côté client?
Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Hello,
je complète la réponse en proposant quelques liens:
Tout d'abord un white paper Microsoft, très bien fait,
téléchargeable ici:
http://www.laboratoire-microsoft.org/whitepapers/9989/
ou la en cas de problème:
http://www.laboratoire-microsoft.org/d/d/?id89
Ceci est également très bien fait et très clair, par l'excellente
Susan Sales Harkins:
http://msdn2.microsoft.com/en-us/library/aa140098(office.10).aspx
Avac, ça vous aurez les réponses à toutes vos questions.
Bonne lecture :-)
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Patrick Philippot wrote:pierre.rivet wrote:C'est quoi un curseur ? et un curseur côté client?Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Hello,
je complète la réponse en proposant quelques liens:
Tout d'abord un white paper Microsoft, très bien fait,
téléchargeable ici:
http://www.laboratoire-microsoft.org/whitepapers/9989/
ou la en cas de problème:
http://www.laboratoire-microsoft.org/d/d/?id89
Ceci est également très bien fait et très clair, par l'excellente
Susan Sales Harkins:
http://msdn2.microsoft.com/en-us/library/aa140098(office.10).aspx
Avac, ça vous aurez les réponses à toutes vos questions.
Bonne lecture :-)
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Merci à vous deux.
Je viens de lire vos messages.
Je vais "chiader" ça ce week end,
Pierre
"Jean-marc" a écrit dans le
message de news: 473ed2c8$0$29261$Patrick Philippot wrote:pierre.rivet wrote:C'est quoi un curseur ? et un curseur côté client?Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Hello,
je complète la réponse en proposant quelques liens:
Tout d'abord un white paper Microsoft, très bien fait,
téléchargeable ici:
http://www.laboratoire-microsoft.org/whitepapers/9989/
ou la en cas de problème:
http://www.laboratoire-microsoft.org/d/d/?id89
Ceci est également très bien fait et très clair, par l'excellente
Susan Sales Harkins:
http://msdn2.microsoft.com/en-us/library/aa140098(office.10).aspx
Avac, ça vous aurez les réponses à toutes vos questions.
Bonne lecture :-)
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Merci à vous deux.
Je viens de lire vos messages.
Je vais "chiader" ça ce week end,
Pierre
"Jean-marc" <NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit dans le
message de news: 473ed2c8$0$29261$ba620e4c@news.skynet.be...
Patrick Philippot wrote:
pierre.rivet wrote:
C'est quoi un curseur ? et un curseur côté client?
Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Hello,
je complète la réponse en proposant quelques liens:
Tout d'abord un white paper Microsoft, très bien fait,
téléchargeable ici:
http://www.laboratoire-microsoft.org/whitepapers/9989/
ou la en cas de problème:
http://www.laboratoire-microsoft.org/d/d/?id89
Ceci est également très bien fait et très clair, par l'excellente
Susan Sales Harkins:
http://msdn2.microsoft.com/en-us/library/aa140098(office.10).aspx
Avac, ça vous aurez les réponses à toutes vos questions.
Bonne lecture :-)
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Merci à vous deux.
Je viens de lire vos messages.
Je vais "chiader" ça ce week end,
Pierre
"Jean-marc" a écrit dans le
message de news: 473ed2c8$0$29261$Patrick Philippot wrote:pierre.rivet wrote:C'est quoi un curseur ? et un curseur côté client?Vous ne pouvez pas gérer proprement une application accédant aux
données sans être au clair sur la notion de curseur. Je vous
conseille donc fortement de relire la documentation à ce sujet.
Hello,
je complète la réponse en proposant quelques liens:
Tout d'abord un white paper Microsoft, très bien fait,
téléchargeable ici:
http://www.laboratoire-microsoft.org/whitepapers/9989/
ou la en cas de problème:
http://www.laboratoire-microsoft.org/d/d/?id89
Ceci est également très bien fait et très clair, par l'excellente
Susan Sales Harkins:
http://msdn2.microsoft.com/en-us/library/aa140098(office.10).aspx
Avac, ça vous aurez les réponses à toutes vos questions.
Bonne lecture :-)
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Bonjour,
Toujours dans le même problème d'ouverture de la base de données en
Réseau....
Ci-dessous la procédure que j'utilise pour mettre à jour le nombre de
coups d'ouverture du logiciel.
voir suite de mon appel au secours après la procédure.....
******************************************************************
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
Set PA = New ADODB.Recordset
Q = "adOpenDynamic, adLockOptimistic"
PA.Open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo,
CT, adOpenDynamic, adLockOptimistic
MsgBox "Ouverture de la table OSTEOPARAM avec " & Q
PA!COUP = COUP
PA.Update
PA.Close
TextCoup = COUP
MsgBox "MAJ réussie avec la combinaison " & Q
Exit Sub
ErreurCoup:
MsgBox Err.Description, vbCritical, "Erreur MAJ avec " & Q
MAJ_NOMBRE_COUPS_2
End Sub
*******************************************************************
J'obtiens le message suivant: "Mise à jour impossible, la base de données
ou
l'objet est en lecture seule."
Bonjour,
Toujours dans le même problème d'ouverture de la base de données en
Réseau....
Ci-dessous la procédure que j'utilise pour mettre à jour le nombre de
coups d'ouverture du logiciel.
voir suite de mon appel au secours après la procédure.....
******************************************************************
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
Set PA = New ADODB.Recordset
Q = "adOpenDynamic, adLockOptimistic"
PA.Open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo,
CT, adOpenDynamic, adLockOptimistic
MsgBox "Ouverture de la table OSTEOPARAM avec " & Q
PA!COUP = COUP
PA.Update
PA.Close
TextCoup = COUP
MsgBox "MAJ réussie avec la combinaison " & Q
Exit Sub
ErreurCoup:
MsgBox Err.Description, vbCritical, "Erreur MAJ avec " & Q
MAJ_NOMBRE_COUPS_2
End Sub
*******************************************************************
J'obtiens le message suivant: "Mise à jour impossible, la base de données
ou
l'objet est en lecture seule."
Bonjour,
Toujours dans le même problème d'ouverture de la base de données en
Réseau....
Ci-dessous la procédure que j'utilise pour mettre à jour le nombre de
coups d'ouverture du logiciel.
voir suite de mon appel au secours après la procédure.....
******************************************************************
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
Set PA = New ADODB.Recordset
Q = "adOpenDynamic, adLockOptimistic"
PA.Open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo,
CT, adOpenDynamic, adLockOptimistic
MsgBox "Ouverture de la table OSTEOPARAM avec " & Q
PA!COUP = COUP
PA.Update
PA.Close
TextCoup = COUP
MsgBox "MAJ réussie avec la combinaison " & Q
Exit Sub
ErreurCoup:
MsgBox Err.Description, vbCritical, "Erreur MAJ avec " & Q
MAJ_NOMBRE_COUPS_2
End Sub
*******************************************************************
J'obtiens le message suivant: "Mise à jour impossible, la base de données
ou
l'objet est en lecture seule."
******************************************************************
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
Set PA = New ADODB.Recordset
Q = "adOpenDynamic, adLockOptimistic"
PA.Open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo,
CT, adOpenDynamic, adLockOptimistic
MsgBox "Ouverture de la table OSTEOPARAM avec " & Q
PA!COUP = COUP
PA.Update
PA.Close
TextCoup = COUP
MsgBox "MAJ réussie avec la combinaison " & Q
Exit Sub
ErreurCoup:
MsgBox Err.Description, vbCritical, "Erreur MAJ avec " & Q
MAJ_NOMBRE_COUPS_2
End Sub
*******************************************************************
Le fait est que ton code tel qu'il est ne va pas nous aider à débugguer:
Toutes tes variables sont gloables ou non déclarées, on a aucune
visibilité sur ce qui est fait avant l'appel de >cette procédure.Comment
peut on savoir, sans avoir ton code sous les yeux et en cours d'exécution
ce que sont:
PA, Q, NuméroOstéo, CT, COUP, etc. ?
Qui nous dit que tu les a déclarées avec le bon type ?
Pour NuméroSostéo et CT, quelles sont les valeurs ?
Le On error est malvenu! Il t'empêche de savoir quelle ligne est
responsable du problème.
Les caractères accentués sont une source d'erreur bien connue, et alors
dans les champs d'une DB, c'est franchement déconseillé ...
Mon conseil si tu veux essayer d'y voir un peu clair:
Commence par créer qq variables locales histoire de voir un peu mieux ce
qui se passe:
Dim szSql as String
szSql = "SELECT * FROM OSTEOPARAM WHERE OrdreOstéo=" & NuméroOstéo
PA.Open szSQL, CT, adOpenDynamic, adLockOptimistic
Enlève le On error Goto
Exécute ce code en pas en pas en mettant un point d'arret sur la ligne:
szSql = " ...
Examines le contenu de chacune des variables
Regarde sur quelle ligne l'erreur se produit.
Refais le test en exécutant ta requête directement sous Access
Refais depuis VB mais avec la base en local
Bref, fais le boulot classique d'un programmeur : étape par étape élimine
les causes possibles d'erreur.
Si tu n'as pas trouvé (mais à mon avis si tu suis ces étapes tu
vas trouver tout seul), tu peux revenir avec :
- Du code plus clair et plus petit, ciblant exactement l'endroit du
problème
- Une descrition détaillée:
. J'ai l'erreur "X" à la ligne "NNN". A ce moment, mes variables
ont es valeurs "a", "b", "c", etc.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
******************************************************************
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
Set PA = New ADODB.Recordset
Q = "adOpenDynamic, adLockOptimistic"
PA.Open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo,
CT, adOpenDynamic, adLockOptimistic
MsgBox "Ouverture de la table OSTEOPARAM avec " & Q
PA!COUP = COUP
PA.Update
PA.Close
TextCoup = COUP
MsgBox "MAJ réussie avec la combinaison " & Q
Exit Sub
ErreurCoup:
MsgBox Err.Description, vbCritical, "Erreur MAJ avec " & Q
MAJ_NOMBRE_COUPS_2
End Sub
*******************************************************************
Le fait est que ton code tel qu'il est ne va pas nous aider à débugguer:
Toutes tes variables sont gloables ou non déclarées, on a aucune
visibilité sur ce qui est fait avant l'appel de >cette procédure.Comment
peut on savoir, sans avoir ton code sous les yeux et en cours d'exécution
ce que sont:
PA, Q, NuméroOstéo, CT, COUP, etc. ?
Qui nous dit que tu les a déclarées avec le bon type ?
Pour NuméroSostéo et CT, quelles sont les valeurs ?
Le On error est malvenu! Il t'empêche de savoir quelle ligne est
responsable du problème.
Les caractères accentués sont une source d'erreur bien connue, et alors
dans les champs d'une DB, c'est franchement déconseillé ...
Mon conseil si tu veux essayer d'y voir un peu clair:
Commence par créer qq variables locales histoire de voir un peu mieux ce
qui se passe:
Dim szSql as String
szSql = "SELECT * FROM OSTEOPARAM WHERE OrdreOstéo=" & NuméroOstéo
PA.Open szSQL, CT, adOpenDynamic, adLockOptimistic
Enlève le On error Goto
Exécute ce code en pas en pas en mettant un point d'arret sur la ligne:
szSql = " ...
Examines le contenu de chacune des variables
Regarde sur quelle ligne l'erreur se produit.
Refais le test en exécutant ta requête directement sous Access
Refais depuis VB mais avec la base en local
Bref, fais le boulot classique d'un programmeur : étape par étape élimine
les causes possibles d'erreur.
Si tu n'as pas trouvé (mais à mon avis si tu suis ces étapes tu
vas trouver tout seul), tu peux revenir avec :
- Du code plus clair et plus petit, ciblant exactement l'endroit du
problème
- Une descrition détaillée:
. J'ai l'erreur "X" à la ligne "NNN". A ce moment, mes variables
ont es valeurs "a", "b", "c", etc.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
******************************************************************
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
Set PA = New ADODB.Recordset
Q = "adOpenDynamic, adLockOptimistic"
PA.Open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo,
CT, adOpenDynamic, adLockOptimistic
MsgBox "Ouverture de la table OSTEOPARAM avec " & Q
PA!COUP = COUP
PA.Update
PA.Close
TextCoup = COUP
MsgBox "MAJ réussie avec la combinaison " & Q
Exit Sub
ErreurCoup:
MsgBox Err.Description, vbCritical, "Erreur MAJ avec " & Q
MAJ_NOMBRE_COUPS_2
End Sub
*******************************************************************
Le fait est que ton code tel qu'il est ne va pas nous aider à débugguer:
Toutes tes variables sont gloables ou non déclarées, on a aucune
visibilité sur ce qui est fait avant l'appel de >cette procédure.Comment
peut on savoir, sans avoir ton code sous les yeux et en cours d'exécution
ce que sont:
PA, Q, NuméroOstéo, CT, COUP, etc. ?
Qui nous dit que tu les a déclarées avec le bon type ?
Pour NuméroSostéo et CT, quelles sont les valeurs ?
Le On error est malvenu! Il t'empêche de savoir quelle ligne est
responsable du problème.
Les caractères accentués sont une source d'erreur bien connue, et alors
dans les champs d'une DB, c'est franchement déconseillé ...
Mon conseil si tu veux essayer d'y voir un peu clair:
Commence par créer qq variables locales histoire de voir un peu mieux ce
qui se passe:
Dim szSql as String
szSql = "SELECT * FROM OSTEOPARAM WHERE OrdreOstéo=" & NuméroOstéo
PA.Open szSQL, CT, adOpenDynamic, adLockOptimistic
Enlève le On error Goto
Exécute ce code en pas en pas en mettant un point d'arret sur la ligne:
szSql = " ...
Examines le contenu de chacune des variables
Regarde sur quelle ligne l'erreur se produit.
Refais le test en exécutant ta requête directement sous Access
Refais depuis VB mais avec la base en local
Bref, fais le boulot classique d'un programmeur : étape par étape élimine
les causes possibles d'erreur.
Si tu n'as pas trouvé (mais à mon avis si tu suis ces étapes tu
vas trouver tout seul), tu peux revenir avec :
- Du code plus clair et plus petit, ciblant exactement l'endroit du
problème
- Une descrition détaillée:
. J'ai l'erreur "X" à la ligne "NNN". A ce moment, mes variables
ont es valeurs "a", "b", "c", etc.
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
>pierre.rivet wrote:
Bonjour Jean Marc, et merci de ton aide....
a) cette procédure fonctionne parfaitement bien depuis 5 ans que ce
soit en réseau ou en poste local
b) ces problèmes ne se produisent pas chez moi, mais chez un
utilisateur situé à 600 km de chez moi.
Voici donc les déclarations correspondant à ta demande:
Dim PA As ADODB.Recordset 'dans les déclarations de la page en
question Dim Q As String ' dans les
déclarations de la page en question
Public NuméroOstéo As Integer ' dans un Module
Dim CD, CT As ADODB.Connection ' dans les déclarations de la page
en question.
Peut-être un problème à cet endroit avec deux connexions dans la même
ligne ?
Public CHEMINBASE As String 'défini dans un module
et CHEMINBASE="//sony/applications/OstéoRéseau/Ostéoréseau.mdb" (ou
quelque chose de similaire). Cette valeur de CHEMINBASE est stockée
dans une table d'une base de données aauxiliaire. A la première
ouverture du logiciel, le praticien ouvre un contrôle dans lequel il
sélectionne un fichier donné.
Les caractères accentués sont une source d'erreur bien connue, et
alors dans les champs d'une DB, c'est franchement déconseillé ...
Qu'entends-tu par caractères accentués ? C'est à dire avec un accent ?
ou avec des majuscules ?
TextCoup = COUP
Peut-être une erreur dans cette ligne ?
A rempacer par TextCoup.Text=Csng(COUP) ?????
>pierre.rivet wrote:
Bonjour Jean Marc, et merci de ton aide....
a) cette procédure fonctionne parfaitement bien depuis 5 ans que ce
soit en réseau ou en poste local
b) ces problèmes ne se produisent pas chez moi, mais chez un
utilisateur situé à 600 km de chez moi.
Voici donc les déclarations correspondant à ta demande:
Dim PA As ADODB.Recordset 'dans les déclarations de la page en
question Dim Q As String ' dans les
déclarations de la page en question
Public NuméroOstéo As Integer ' dans un Module
Dim CD, CT As ADODB.Connection ' dans les déclarations de la page
en question.
Peut-être un problème à cet endroit avec deux connexions dans la même
ligne ?
Public CHEMINBASE As String 'défini dans un module
et CHEMINBASE="//sony/applications/OstéoRéseau/Ostéoréseau.mdb" (ou
quelque chose de similaire). Cette valeur de CHEMINBASE est stockée
dans une table d'une base de données aauxiliaire. A la première
ouverture du logiciel, le praticien ouvre un contrôle dans lequel il
sélectionne un fichier donné.
Les caractères accentués sont une source d'erreur bien connue, et
alors dans les champs d'une DB, c'est franchement déconseillé ...
Qu'entends-tu par caractères accentués ? C'est à dire avec un accent ?
ou avec des majuscules ?
TextCoup = COUP
Peut-être une erreur dans cette ligne ?
A rempacer par TextCoup.Text=Csng(COUP) ?????
>pierre.rivet wrote:
Bonjour Jean Marc, et merci de ton aide....
a) cette procédure fonctionne parfaitement bien depuis 5 ans que ce
soit en réseau ou en poste local
b) ces problèmes ne se produisent pas chez moi, mais chez un
utilisateur situé à 600 km de chez moi.
Voici donc les déclarations correspondant à ta demande:
Dim PA As ADODB.Recordset 'dans les déclarations de la page en
question Dim Q As String ' dans les
déclarations de la page en question
Public NuméroOstéo As Integer ' dans un Module
Dim CD, CT As ADODB.Connection ' dans les déclarations de la page
en question.
Peut-être un problème à cet endroit avec deux connexions dans la même
ligne ?
Public CHEMINBASE As String 'défini dans un module
et CHEMINBASE="//sony/applications/OstéoRéseau/Ostéoréseau.mdb" (ou
quelque chose de similaire). Cette valeur de CHEMINBASE est stockée
dans une table d'une base de données aauxiliaire. A la première
ouverture du logiciel, le praticien ouvre un contrôle dans lequel il
sélectionne un fichier donné.
Les caractères accentués sont une source d'erreur bien connue, et
alors dans les champs d'une DB, c'est franchement déconseillé ...
Qu'entends-tu par caractères accentués ? C'est à dire avec un accent ?
ou avec des majuscules ?
TextCoup = COUP
Peut-être une erreur dans cette ligne ?
A rempacer par TextCoup.Text=Csng(COUP) ?????
>pierre.rivet wrote:
Je réponds moi aussi entre les lignes en espaçant bienBonjour Jean Marc, et merci de ton aide....
J'essaie en tout cas :-)a) cette procédure fonctionne parfaitement bien depuis 5 ans que ce
soit en réseau ou en poste local
OK.b) ces problèmes ne se produisent pas chez moi, mais chez un
utilisateur situé à 600 km de chez moi.
Ca n'aide pas.Voici donc les déclarations correspondant à ta demande:
Dim PA As ADODB.Recordset 'dans les déclarations de la page en
question Dim Q As String ' dans les
déclarations de la page en question
Public NuméroOstéo As Integer ' dans un ModuleDim CD, CT As ADODB.Connection ' dans les déclarations de la page
en question.
Peut-être un problème à cet endroit avec deux connexions dans la même
ligne ?
ERREUR ici.
En VB, si tu fais :
Dim Toto, Titi as Integer
Et bien seul Titi est un Entier.
Toto est un variant.
La syntaxe correcte pour ton cas est au choix:
Dim CD As ADODB.Connection, CT As ADODB.Connection
Ou le classique :
Dim CD As ADODB.Connection
Dim CT As ADODB.ConnectionPublic CHEMINBASE As String 'défini dans un moduleet CHEMINBASE="//sony/applications/OstéoRéseau/Ostéoréseau.mdb" (ou
quelque chose de similaire). Cette valeur de CHEMINBASE est stockée
dans une table d'une base de données aauxiliaire. A la première
ouverture du logiciel, le praticien ouvre un contrôle dans lequel il
sélectionne un fichier donné.
Perso, je m'assurerais que la base (le .mdb) n'est
pas en lecture seule, par accident :
Tu peux utiliser une fonction comme celle-ci :
Private Function IsReadOnly(FileName As String) As Boolean
Dim attr As VbFileAttribute
attr = GetAttr(FileName)
If (attr And vbReadOnly) = vbReadOnly Then
IsReadOnly = True
End If
End Function
Pour info, plein de trucs utiles dans cet article de notre FAQ:
http://faq.vb.free.fr/index.php?question2Les caractères accentués sont une source d'erreur bien connue, et
alors dans les champs d'une DB, c'est franchement déconseillé ...
Qu'entends-tu par caractères accentués ? C'est à dire avec un accent ?
ou avec des majuscules ?
Oui, avec des accents; C'est une très très mauvaise pratique que
d'utiliser des accents dans les noms de variable, mais alors
c'est carrément interdit dans un nom de champ d'une BDD (pas portable,
pas nécessairement supporté partout, etc.)
Ceci dit je ne pense pas que ce soit le problème dans le cas
qui nous occupe.
TextCoup = COUP
Peut-être une erreur dans cette ligne ?
A rempacer par TextCoup.Text=Csng(COUP) ?????
Pas une "erreur", mais en tout cas une faute de goût.
1. Toujours spécifier la propriété (ici .Text) et ne jamais
utiliser la propriété par défaut.
2. Un champt text devrait être rempli avec une chaine de caractères.
Je suppose que COUP est un type numérique.
3. Les MAJUSCULES sont à réserver aux Constantes.
Donc il faudrait écrire en toute orthodoxie:
TextCoup.text = Str$(Coup)
// Pour résumer
- rectifier la déclaration de CT
- Vérifier (au moment le plus opportun) que le .mdb n'est pas en lecture
seule
- Comme tu opères le débuggage à distance, il va falloir écrire du code de
débuggage qui tienne la route.
Je peux te proposer ceci:
' La procédure de log :
Public Sub LogMessage(ByVal msg As String)
Dim f As Integer
f = FreeFile
Open App.Path & "log.txt" For Append As #f
Print #f, Date & "-" & Time & " " & msg
Close #f
End Sub
' Puis tu l'utilises dans ton code :
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
LogMessage ("Before SET PA")
Set PA = New ADODB.Recordset
LogMessage ("After SET PA")
Q = "adOpenDynamic, adLockOptimistic"
PA.open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo, CT,
adOpenDynamic, adLockOptimistic
LogMessage ("After Open")
A!COUP = COUP
LogMessage ("After A!COUP")
PA.Update
LogMessage ("After Update")
PA.Close
LogMessage ("After Close)
TextCoup.Text = Str$(COUP)
Exit Sub
ErreurCoup:
MsgBox "Error in MAJ_NOMBRE_COUPS_1. Number=" & Err.Number & "
Description=" & Err.Description
Call MAJ_NOMBRE_COUPS_2
End Sub
Puis tu demandes à ton utilisateur de t'envoyer le log file.
Tu devrais finir par en voir le bout !
Bon courage!
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
>pierre.rivet wrote:
Je réponds moi aussi entre les lignes en espaçant bien
Bonjour Jean Marc, et merci de ton aide....
J'essaie en tout cas :-)
a) cette procédure fonctionne parfaitement bien depuis 5 ans que ce
soit en réseau ou en poste local
OK.
b) ces problèmes ne se produisent pas chez moi, mais chez un
utilisateur situé à 600 km de chez moi.
Ca n'aide pas.
Voici donc les déclarations correspondant à ta demande:
Dim PA As ADODB.Recordset 'dans les déclarations de la page en
question Dim Q As String ' dans les
déclarations de la page en question
Public NuméroOstéo As Integer ' dans un Module
Dim CD, CT As ADODB.Connection ' dans les déclarations de la page
en question.
Peut-être un problème à cet endroit avec deux connexions dans la même
ligne ?
ERREUR ici.
En VB, si tu fais :
Dim Toto, Titi as Integer
Et bien seul Titi est un Entier.
Toto est un variant.
La syntaxe correcte pour ton cas est au choix:
Dim CD As ADODB.Connection, CT As ADODB.Connection
Ou le classique :
Dim CD As ADODB.Connection
Dim CT As ADODB.Connection
Public CHEMINBASE As String 'défini dans un module
et CHEMINBASE="//sony/applications/OstéoRéseau/Ostéoréseau.mdb" (ou
quelque chose de similaire). Cette valeur de CHEMINBASE est stockée
dans une table d'une base de données aauxiliaire. A la première
ouverture du logiciel, le praticien ouvre un contrôle dans lequel il
sélectionne un fichier donné.
Perso, je m'assurerais que la base (le .mdb) n'est
pas en lecture seule, par accident :
Tu peux utiliser une fonction comme celle-ci :
Private Function IsReadOnly(FileName As String) As Boolean
Dim attr As VbFileAttribute
attr = GetAttr(FileName)
If (attr And vbReadOnly) = vbReadOnly Then
IsReadOnly = True
End If
End Function
Pour info, plein de trucs utiles dans cet article de notre FAQ:
http://faq.vb.free.fr/index.php?question2
Les caractères accentués sont une source d'erreur bien connue, et
alors dans les champs d'une DB, c'est franchement déconseillé ...
Qu'entends-tu par caractères accentués ? C'est à dire avec un accent ?
ou avec des majuscules ?
Oui, avec des accents; C'est une très très mauvaise pratique que
d'utiliser des accents dans les noms de variable, mais alors
c'est carrément interdit dans un nom de champ d'une BDD (pas portable,
pas nécessairement supporté partout, etc.)
Ceci dit je ne pense pas que ce soit le problème dans le cas
qui nous occupe.
TextCoup = COUP
Peut-être une erreur dans cette ligne ?
A rempacer par TextCoup.Text=Csng(COUP) ?????
Pas une "erreur", mais en tout cas une faute de goût.
1. Toujours spécifier la propriété (ici .Text) et ne jamais
utiliser la propriété par défaut.
2. Un champt text devrait être rempli avec une chaine de caractères.
Je suppose que COUP est un type numérique.
3. Les MAJUSCULES sont à réserver aux Constantes.
Donc il faudrait écrire en toute orthodoxie:
TextCoup.text = Str$(Coup)
// Pour résumer
- rectifier la déclaration de CT
- Vérifier (au moment le plus opportun) que le .mdb n'est pas en lecture
seule
- Comme tu opères le débuggage à distance, il va falloir écrire du code de
débuggage qui tienne la route.
Je peux te proposer ceci:
' La procédure de log :
Public Sub LogMessage(ByVal msg As String)
Dim f As Integer
f = FreeFile
Open App.Path & "log.txt" For Append As #f
Print #f, Date & "-" & Time & " " & msg
Close #f
End Sub
' Puis tu l'utilises dans ton code :
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
LogMessage ("Before SET PA")
Set PA = New ADODB.Recordset
LogMessage ("After SET PA")
Q = "adOpenDynamic, adLockOptimistic"
PA.open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo, CT,
adOpenDynamic, adLockOptimistic
LogMessage ("After Open")
A!COUP = COUP
LogMessage ("After A!COUP")
PA.Update
LogMessage ("After Update")
PA.Close
LogMessage ("After Close)
TextCoup.Text = Str$(COUP)
Exit Sub
ErreurCoup:
MsgBox "Error in MAJ_NOMBRE_COUPS_1. Number=" & Err.Number & "
Description=" & Err.Description
Call MAJ_NOMBRE_COUPS_2
End Sub
Puis tu demandes à ton utilisateur de t'envoyer le log file.
Tu devrais finir par en voir le bout !
Bon courage!
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
>pierre.rivet wrote:
Je réponds moi aussi entre les lignes en espaçant bienBonjour Jean Marc, et merci de ton aide....
J'essaie en tout cas :-)a) cette procédure fonctionne parfaitement bien depuis 5 ans que ce
soit en réseau ou en poste local
OK.b) ces problèmes ne se produisent pas chez moi, mais chez un
utilisateur situé à 600 km de chez moi.
Ca n'aide pas.Voici donc les déclarations correspondant à ta demande:
Dim PA As ADODB.Recordset 'dans les déclarations de la page en
question Dim Q As String ' dans les
déclarations de la page en question
Public NuméroOstéo As Integer ' dans un ModuleDim CD, CT As ADODB.Connection ' dans les déclarations de la page
en question.
Peut-être un problème à cet endroit avec deux connexions dans la même
ligne ?
ERREUR ici.
En VB, si tu fais :
Dim Toto, Titi as Integer
Et bien seul Titi est un Entier.
Toto est un variant.
La syntaxe correcte pour ton cas est au choix:
Dim CD As ADODB.Connection, CT As ADODB.Connection
Ou le classique :
Dim CD As ADODB.Connection
Dim CT As ADODB.ConnectionPublic CHEMINBASE As String 'défini dans un moduleet CHEMINBASE="//sony/applications/OstéoRéseau/Ostéoréseau.mdb" (ou
quelque chose de similaire). Cette valeur de CHEMINBASE est stockée
dans une table d'une base de données aauxiliaire. A la première
ouverture du logiciel, le praticien ouvre un contrôle dans lequel il
sélectionne un fichier donné.
Perso, je m'assurerais que la base (le .mdb) n'est
pas en lecture seule, par accident :
Tu peux utiliser une fonction comme celle-ci :
Private Function IsReadOnly(FileName As String) As Boolean
Dim attr As VbFileAttribute
attr = GetAttr(FileName)
If (attr And vbReadOnly) = vbReadOnly Then
IsReadOnly = True
End If
End Function
Pour info, plein de trucs utiles dans cet article de notre FAQ:
http://faq.vb.free.fr/index.php?question2Les caractères accentués sont une source d'erreur bien connue, et
alors dans les champs d'une DB, c'est franchement déconseillé ...
Qu'entends-tu par caractères accentués ? C'est à dire avec un accent ?
ou avec des majuscules ?
Oui, avec des accents; C'est une très très mauvaise pratique que
d'utiliser des accents dans les noms de variable, mais alors
c'est carrément interdit dans un nom de champ d'une BDD (pas portable,
pas nécessairement supporté partout, etc.)
Ceci dit je ne pense pas que ce soit le problème dans le cas
qui nous occupe.
TextCoup = COUP
Peut-être une erreur dans cette ligne ?
A rempacer par TextCoup.Text=Csng(COUP) ?????
Pas une "erreur", mais en tout cas une faute de goût.
1. Toujours spécifier la propriété (ici .Text) et ne jamais
utiliser la propriété par défaut.
2. Un champt text devrait être rempli avec une chaine de caractères.
Je suppose que COUP est un type numérique.
3. Les MAJUSCULES sont à réserver aux Constantes.
Donc il faudrait écrire en toute orthodoxie:
TextCoup.text = Str$(Coup)
// Pour résumer
- rectifier la déclaration de CT
- Vérifier (au moment le plus opportun) que le .mdb n'est pas en lecture
seule
- Comme tu opères le débuggage à distance, il va falloir écrire du code de
débuggage qui tienne la route.
Je peux te proposer ceci:
' La procédure de log :
Public Sub LogMessage(ByVal msg As String)
Dim f As Integer
f = FreeFile
Open App.Path & "log.txt" For Append As #f
Print #f, Date & "-" & Time & " " & msg
Close #f
End Sub
' Puis tu l'utilises dans ton code :
Public Sub MAJ_NOMBRE_COUPS_1()
On Error GoTo ErreurCoup
LogMessage ("Before SET PA")
Set PA = New ADODB.Recordset
LogMessage ("After SET PA")
Q = "adOpenDynamic, adLockOptimistic"
PA.open "select * from OSTEOPARAM where OrdreOstéo=" & NuméroOstéo, CT,
adOpenDynamic, adLockOptimistic
LogMessage ("After Open")
A!COUP = COUP
LogMessage ("After A!COUP")
PA.Update
LogMessage ("After Update")
PA.Close
LogMessage ("After Close)
TextCoup.Text = Str$(COUP)
Exit Sub
ErreurCoup:
MsgBox "Error in MAJ_NOMBRE_COUPS_1. Number=" & Err.Number & "
Description=" & Err.Description
Call MAJ_NOMBRE_COUPS_2
End Sub
Puis tu demandes à ton utilisateur de t'envoyer le log file.
Tu devrais finir par en voir le bout !
Bon courage!
--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;