Debut fin d'un base Access

Dounej Messages postés 28 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 7 avril 2007 - 4 avril 2007 à 11:29
Dounej Messages postés 28 Date d'inscription jeudi 28 décembre 2006 Statut Membre Derniè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

11 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
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. 
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 avril 2007 à 14:02
...

bien fait pour moi de s' être cassé la tête pour rien,Dounej...
et merci d' avoir donner suite...
0
Dounej Messages postés 28 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 7 avril 2007
4 avril 2007 à 15:20
Bonjour 736628 chaibat05 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>



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.

Je te renouvelle  mes remerciements.

Cordialement.
Marc
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 avril 2007 à 16:13
'e vois donc que tu parles d' incrémentation...
le recordcount est pire !


1
2
4
5
7
8


RecordCount=6
RecordCount+1=7


Déjà éxistant !


Solution Récupères le Max
Max=8
Max+1=9


 


 


 
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
4 avril 2007 à 16:34
J'ai eu le meme souci alors, je fais

rs.movelast

LastNum = rs.AbsolutePosition

et je me base sur  LastNum pour incrémenter. Ca bouche pas les trous mais pas de doublons.
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
4 avril 2007 à 16:36
Sauf bien sur si tu traficote la base entre temps , faudrait alors cherché l'indice le plus fort dans tous tes records.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
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
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
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.

Merci 
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
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...


 
0
Dounej Messages postés 28 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 7 avril 2007
5 avril 2007 à 16:19
Bonjour 736628 chaibat05  et  =999867 Nicko11<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>

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

Avec mes remerciements.
Marc
0
Rejoignez-nous