> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
178,00 €Tablette 10.5 pouces Samsung Galaxy Tab A8 (8 coeurs, 32Go, WUXGA+, RAM 3 Go) à 178 €
Valable jusqu'au 29 Mai

Amazon fait une promotion sur la tablette 10.5 pouces Samsung Galaxy Tab A8 qui passe à 178 €. On la trouve ailleurs à plus de 230 €. Cette tablette possède un écran 10.5 pouces WUXGA (1920x1200pixels), un processeur octa-core 2 GHz, 3 Go de RAM, un espace de stockage de 32 Go extensible par MicroSD, le WiFi, le bluetooth et tourne sous Android 11.


> Voir l'offre
145,68 €SSD Corsair Force MP600 Pro 1 To (NMVe M.2 Gen4, 7000/5500 Mo/s) à 145,68 € livré
Valable jusqu'au 30 Mai

Amazon Allemagne fait une promotion sur le SSD Corsair Force MP600 Pro 1 To (NMVe M.2 Gen4) qui passe à 141,07 € (avec la TVA ajustée). Comptez 4,61 € pour la livraison en France soit un total de 145,68 € livré alors qu'on le trouve ailleurs à partir de 160 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen4 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 7000 Mo/s en lecture séquentielle et jusqu’à 5500 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de 5 ans. Il est accompagné d'un dissipateur thermique.

Notez que ce SSD est compatible PS5.


> Voir l'offre
13,75 €Windows 10 Pro 32/64 bits OEM à 13,75 €
Valable jusqu'au 30 Mai

Le vendeur sérieux Digital FR propose sur Amazon la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 13,75 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.

Notez que vous pourrez également passer à Windows 11 gratuitement avec cette clé.


> 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