Dounej
Messages postés28Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention 7 avril 2007
-
4 avril 2007 à 11:29
Dounej
Messages postés28Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention 7 avril 2007
-
5 avril 2007 à 16:19
Bonjour
Comment se positionner au début ou à la fin d'une base Access ?
MoveLast et MoveFirst ne fonctionne pas ?
j'arrive à me positionner sur le dernier enregistrement grace à RecordCount
comment utiliser EOF et BOF ?
D'autre part moveprevious ne fonctionne pas ?
il me retourne le message d'erreur suivant : "pas d'enregistrement courant"
La base contient 15 enregistrements que je fasse MoveLast ou MoveFirst, le positionnement se fait dans les deux cas sur le 8ème enregistrement ???
Pour résumer le problème je n'arrive pas à récupérer le contenu de ma base
Ce PB fait suite au questions d'hier :voir le code Cordialement
Marc
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 4 avril 2007 à 11:57
Je pense que le problème, si je me souviens, viens de la mise a jour de ta table, donc avant de te lancer dans movefirst et autre ou encore EOF et BOF, tu devrais avant tout corriger ce problème,
je n'arrive pas à récupérer le contenu de ma base
Tu as essayer de mettre des "rs.update" un peu partout pour voir si tu n'as pas un pb de synchronisation.
Non loin de là, je te confirme
: Ta participation a été extrêmement fructueuse, c'est d'ailleurs grâce à toi que j'ai résolu les problèmes antérieurs. Mais pour faire une métaphore comme "un train peu en caché un autre" on peut dire qu'en informatique un problème peu en caché un autre.
Et c'est le cas. Aussitôt un problème résolu qu'un autre apparaît
Le problème que je pose ici est différent de celui posé hier.
mais c'est toujours le même programme qui est en défaut.
Concernant le problème des doublons, j'ai résolu la question tout simplement en incrémentant non à partir du dernier enregistrement, car mon prog refuse le MoveLast mais en utilisant RecordCount.
Néanmoins, je pense comprendre le pourquoi des problèmes :
En fait il ne s'agit pas d'un problème de programme.
Tout simplement ma base contient des cellules vides or la syntaxe de lecture de la base interprète la cellule vide comme NULL
ce qui n'est pas permis, et je ne sais pas comment gérer ce type de cas. Néanmoins, cela fonctionne dans d'autres contextes puisque j'ai des bases Access avec des cellules vides.
Je suis donc en train de revoir l'algorithme de mon programme de façon que cette situation ne se présente pas.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 4 avril 2007 à 15:56
Re-bonjour Dounej,
Excuses mon saut d' humeur...
Je ne regrette absolument pas d' avoir participer à ton topic.
Tout ce qu' il y' a c' est que j' ai horreur des "ruptures"
et je n' apprécie pas trop qu' on puisse pas dire :"Salut et au revoir".
Maintenant, tout est oublié !
Concernant le problème des valeurs nulles, voici ce que je te propose:
-Si tes champs sont de type String, définies leurs valeurs par défaut à ""
Ensuite dans ton code , avant d' affecter une valeur , testes sur elle,
Si elle n' est ni nulle ni vide alors tu l' affectes, sinon tu ne fais rien
et à l' ajout de ta ligne tes champs prenderont leurs valeur par défaut.
Aini lors e la lecture, tu auas au moins une chaine vide.
Pour les champs numériques , tu peux toujours choisir valeur par défaut=0.
Ceci dit ce qui fait le plus défaut dans tes questions, c' est qu' elles manquent
des exemples.Il suffit de mettre 4 ou 5 colonnes et 2 ou 3 lignes .ça aide beaucoup.
Si tu peux remédier à ça, on pourra certainement t' aider
A+
Ps: Pour le AddNew ne fait jamais de MoveLast ou MoveFirst, car si ta table
est vide tu auras une erreur.Ne testes même pas sur le recordcount
Quand il ajoute , il ait quoi faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 4 avril 2007 à 16:55
...
Attention Nicko, tu risques d' avoir des surprises avec AbsolutePosition .
Parfois c' est -1 alors que ta table est pleine à craquer
Il y' aurait quoi à traficoter ? Il suffit de :
sQuery="SELECT Max(MaTbl.MonChp) AS LeDernier FROM MaTbl"
Set rs=Pdb.OpenRecordSet(sQuery,DbOpenSnapshot)
If (rs.Bof) And (rs.Eof) Then
Suivant=1
Else
Suivant= rs![LeDernier]+1
End If
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 5 avril 2007 à 09:20
La tu m'intéresse avec cette phrase, je cite :
Parfois c' est -1 alors que ta table est pleine à craquer
Peux tu m'en dire un peu plus car je veux eviter a tout pris ce genre d'erreur car je l'utilise souvent dans mon prog et que ca m'embeterai de voir cette erreur tout me faire planter.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 5 avril 2007 à 15:00
Bonjour,
il arrive que ton recordset ne pointe sur
aucun (pas rafraichit,Bof et Eof..., ou suite à une erreur)
Absolute position correspond à la position de l' enregistrement
en cours ,et non à la valeur d' un champ...
merci pour ces nouvelles contributions.
Comme, je l'ai dit hier j'ai modifié mon programme en supprimant le premier
enregistrement d'initialisation de ma base.
Depuis cette modification ça marche nickel !
la page Access est tournée (j'espère).
Je suis désormais sur un nouveau problème,
Comment puis-je télecharger un fichier Zip d'une page internet ? si cela vous interesse voici le lien vers le
nouveau Topic