× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Problème Access et Visual BasicSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
ALAIN093
  Posté le 24/02/2012 @ 14:32 
Aller en bas de la page 
Petit astucien

Bonjour à tous

J'ai récupéré en maintenance une base Access que je n'ai pas développé moi-même (cherchez l'erreur)...cette base permet l'édition automatique de devis commerciaux.

Bien évidemment je rencontre un problème :

Voici le message d'erreur obtenu :

Lorsque j'utilise ce code :

Public Function getId(sqlQuery As String) As Integer
Dim returnValue As Integer
Dim bds As Database
Dim rst As Recordset
Dim varRecords As Variant

returnValue = -1
Set bds = CurrentDb
Set rst = bds.OpenRecordset(sqlQuery)
' Passe au premier enregistrement
If rst.RecordCount <> 0 Then
rst.MoveFirst
varRecords = rst.GetRows(rst.RecordCount)
If Not IsNull(varRecords(0, 0)) Then
returnValue = varRecords(0, 0)
End If
End If
rst.Close
Set bds = Nothing
getId = returnValue
End Function


J'ai bien compris que le résultat obtenu dépasse la limite fixée...mais je ne sais pas quoi faire.

Jusqu'à très récemment ce code fonctionnait parfaitement...je ne souhaite donc pas le modifier; d'autant que j'ai bien essayé de remplacer le variabe "Integer" par "Double" ou "Long" et que cela n'a fait que décaler le problème sur un autre code...

En revanche, il semblerait que le résultat soit incrémentable et je souhaiterai si possible remettre à zéro le compteur.


C'est sur ce dernier point que je sèche complètement...y-aurait-il quelqu'un pour m'aider ?

Je vous remercie par avance de vos réponses


PS : Je travail sur Windows XP Pro SP3, Access 2000, Word & Excel 2003 et Visual basic 6.3

Publicité
rj390111
 Posté le 24/02/2012 à 17:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Que contient varRecords(0,0) au moment où on veut l'imputer dans returnValue?

ALAIN093
 Posté le 27/02/2012 à 10:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

varRecords(0, 0) = 32779

ALAIN093
 Posté le 29/02/2012 à 12:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Personne ne peut m'indiquer ou et comment remettre à zéro ce compteur ?

Sinon, personne n'aurait une autre solution ?

Merci d'avance.

ALAIN093
 Posté le 01/03/2012 à 11:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Toujours personne ?

rj390111
 Posté le 01/03/2012 à 19:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

J'avais perdu de vue votre demande. Désolé

returnvalue est de type Integer

or dans l'aide de visual basic on peut lire.

Les variables de type Integer sont stockées sous la forme de nombres de 16 bits (2 octets) dont la valeur est comprise entre -32 768 et 32 767. Le caractère de déclaration de type Integer est le signe %.

Les variables de type Integer permettent également de représenter des valeurs énumérées. Celles-ci peuvent contenir un ensemble fini d'entiers uniques possédant tous une signification particulière dans le contexte où ils sont utilisés. Elles permettent d'opérer facilement une sélection parmi un nombre connu de choix, du type noir = 0, blanc = 1, etc. Il est conseillé de définir des constantes pour chaque valeur énumérée via l'instruction Const.

N'est-ce pas là la source de l'erreur?

ALAIN093
 Posté le 02/03/2012 à 14:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Comme je l'avais indiqué, j'ai bien compris que le résultat obtenu dépasse la limite imposée par la variable "Integer" et c'est effectivement là la source d'erreur.

Ce que je voudrai faire, c'est remettre à zéro le compteur...mais je ne sais si c'est possible et encore moins comment. Pouvez-vous m'aider ?

Sinon, est-ce que remplacer toute les variables "Integer" par des variables "Long" est une bonne solution ?? Concrètement, qu'est-ce que cela peux changer ? Quel problème pourrait éventuellement se poser ?

Je vous remercie d'avance pour vos réponses.

rj390111
 Posté le 02/03/2012 à 17:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Le type long dans l'aide de visual basic.

Long, type de données

Voir aussi Exemple Particularités

Les variables de type Long (entier long) sont stockées sous la forme de nombres signés de 32 bits (4 octets) dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647. Le caractère de déclaration de type Long est le signe &.

Donc cela devrait permettre d'éviter le dépassement de capacité.

ALAIN093
 Posté le 07/03/2012 à 11:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ok, j'ai donc remplacé toutes les variables "Integer" par des variables "Long" et refonctionne correctement (au début je n'avais fait cette modif que sur la partie du code posant problème).

Je te remercie de ta participation rj390111

(Peut-être à une prochaine )

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
249 €Smartphone Poco X3 NFC (6,67 pouces 120 Hz, 6 Go Ram, 128 Go stockage) à 249 €
Valable jusqu'au 26 Septembre

Amazon fait une belle promotion sur le tout nouveau smartphone Poco X3 qui passe 249 € au lieu de 279 €. Il est équipé du tout dernier processeur Qualcomm Snapdragon 732G, de 6 Go de RAM, de 128 Go de stockage et d’un écran de 6,67 pouces ultra fluide 120 Hz. Il comprend aussi une Quad-Caméra de 64 MP avec IA et une caméra selfie poinçonnée de 20 MP. Il comprend une grande batterie de 5160 mAh, pour une utilisation sur plusieurs jours (supporte la charge rapide de 33W). Le POCO X3 NFC dispose également d'un capteur d’empreinte digitale sur le côté et une prise jack 3,5 mm pour vous permettre de brancher vos haut-parleurs ou vos écouteurs filaires. Le tout tourne sous Android 10.


> Voir l'offre
82,49 €Lego Technic 42111 La Dodge Charger de Dom à 82,49 € (via coupon)
Valable jusqu'au 21 Septembre

Amazon fait une promotion sur le Lego Technic 42111 La Dodge Charger de Dom (des films Fast and Furious) qui passe à 82,49 € grâce à un coupon de réduction à appliquer sur la page du produit. On la trouve ailleurs à plus de 100 €. La livraison est gratuite.


> Voir l'offre
98,99 €Disque dur portable externe WD Black P10 Game Drive 4 To à 98,99 €
Valable jusqu'au 24 Septembre

Amazon fait une promotion sur le disque dur externe portable WD Black P10 Game Drive 4 To qui passe à 98,99 € livré gratuitement. On le trouve ailleurs à partir de 125 €. Ce disque dur USB 3.1 est dédié pour gérer et transporter votre bibliothèque de jeux sur PC ou sur console.


> Voir l'offre

Sujets relatifs
Problème visual basic dans excel 2003
Apprendre access et visual basic
Notices de Access et Visual Basic ?
Mettre des vidéos sur un programme crée avec Microsoft Visual Basic 2010
Problème Listbox.count dans VBA access
Problème avec Access 2007
Probleme formulaire access 2007
Problème de Requête Access 2007
prob erreur de compilation visual basic office XP
Programmation Visual Basic et mise en forme excell
Plus de sujets relatifs à Problème Access et Visual Basic
 > Tous les forums > Forum Bureautique