Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Base SQL Server, Interface Access. Pb avec mon champs id de type compteur dans les formulaires

4 réponses
Avatar
Asarus \(Sebastien Candela\)
Bonjour,

J'ai recherché un peu partout dans les news mais je ne trouve pas de réponse
précise à mon problème. Alors je me permet de vous le soumettre.

Je suis en migration d'access 2000 vers sql server 2000.
Mes données sont migrées et tous mes anciens champs de type "numéroauto" ont
été passés en "int". J'ai ensuite modifié les propriétés pour activer
l'option "compteur" avec une valeur de départ correspondant au maximum de ce
que j'avais dans chaque table + 1 et un incrément de 1.
Bref pour faire simple, si mon plus grand champ "id" de la table "assurés"
était à 45, le champs "id" est maintenant en mode compteur avec un début à
46 et un incrément de 1
J'ai aussi remis mes "id" comme clés primaires dans SQL Server.

J'ai par contre un problème de remplissage des données par l'utilisateur
maintenant.
Dans un formulaire en mode lignes, je complète mes enregistrements et mon
"id" se met automatiquement, comme avant. Impeccable
Mais dans un formulaire en mode formulaire, le champ "id" ne se complète pas
automatiquement et du coup j'obtiens une erreur me précisant que la valeur
null est interdite pour ce champ (normal) et mon enregistrement n'est pas
sauvegardé.
Je pensais à forcer l'enregistrement pour qu'il complète le champ "id" tout
seul mais ça ne change pas grand chose. J'ai regardé du côté de Docmd.Save ,
de Refresh, Requery mais pas mieux...

Savez vous ce qu'il faut faire pour que ce champ (clé primaire, int en mode
compteur) se complète tout seul comme ça le faisait sous access quand
c'était un numéroauto ?

Merci ;-)

Seb

4 réponses

Avatar
Asarus \(Sebastien Candela\)
Je précise

Je parle de mode simple et de mode continu (selon la terminologie access):

Dans un formulaire en mode lignes, je complète mes enregistrements et mon
"id" se met automatiquement, comme avant. Impeccable
--> mode continu (que j'utilise dans un sous formulaire en fait, pour lister

plusieurs enregistrements en même temps)

Mais dans un formulaire en mode formulaire, le champ "id" ne se complète
pas

automatiquement et du coup j'obtiens une erreur me précisant que la valeur
null est interdite pour ce champ (normal) et mon enregistrement n'est pas
sauvegardé.
--> mode simple


Seb

Avatar
Pierre CFI
bonjour
ce qui m'étonne c'est que çà marche avec un form en tableau et pas en continu
supprime ce champ du form et recrée le pour voir

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Asarus (Sebastien Candela)" a écrit dans le message de news:
3f98f1ca$0$261$
Bonjour,

J'ai recherché un peu partout dans les news mais je ne trouve pas de réponse
précise à mon problème. Alors je me permet de vous le soumettre.

Je suis en migration d'access 2000 vers sql server 2000.
Mes données sont migrées et tous mes anciens champs de type "numéroauto" ont
été passés en "int". J'ai ensuite modifié les propriétés pour activer
l'option "compteur" avec une valeur de départ correspondant au maximum de ce
que j'avais dans chaque table + 1 et un incrément de 1.
Bref pour faire simple, si mon plus grand champ "id" de la table "assurés"
était à 45, le champs "id" est maintenant en mode compteur avec un début à
46 et un incrément de 1
J'ai aussi remis mes "id" comme clés primaires dans SQL Server.

J'ai par contre un problème de remplissage des données par l'utilisateur
maintenant.
Dans un formulaire en mode lignes, je complète mes enregistrements et mon
"id" se met automatiquement, comme avant. Impeccable
Mais dans un formulaire en mode formulaire, le champ "id" ne se complète pas
automatiquement et du coup j'obtiens une erreur me précisant que la valeur
null est interdite pour ce champ (normal) et mon enregistrement n'est pas
sauvegardé.
Je pensais à forcer l'enregistrement pour qu'il complète le champ "id" tout
seul mais ça ne change pas grand chose. J'ai regardé du côté de Docmd.Save ,
de Refresh, Requery mais pas mieux...

Savez vous ce qu'il faut faire pour que ce champ (clé primaire, int en mode
compteur) se complète tout seul comme ça le faisait sous access quand
c'était un numéroauto ?

Merci ;-)

Seb




Avatar
Asarus \(Sebastien Candela\)
Je viens de prendre mon (sous) formulaire en mode continu (genre tableau) et
de la passer en mode simple... ça marche aussi...

Bon, je retourne voir ce qui pose problème et pourquoi certains formulaires
acceptent de compléter mon id et pas d'autres. Le point commun n'est pas
celui que je pensais. Je vous tiens au courant ;-)

Seb

"Pierre CFI" a écrit dans le message de news:

bonjour
ce qui m'étonne c'est que çà marche avec un form en tableau et pas en
continu

supprime ce champ du form et recrée le pour voir

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Asarus (Sebastien Candela)" a écrit
dans le message de news:

3f98f1ca$0$261$
Bonjour,

J'ai recherché un peu partout dans les news mais je ne trouve pas de
réponse


précise à mon problème. Alors je me permet de vous le soumettre.

Je suis en migration d'access 2000 vers sql server 2000.
Mes données sont migrées et tous mes anciens champs de type "numéroauto"
ont


été passés en "int". J'ai ensuite modifié les propriétés pour activer
l'option "compteur" avec une valeur de départ correspondant au maximum
de ce


que j'avais dans chaque table + 1 et un incrément de 1.
Bref pour faire simple, si mon plus grand champ "id" de la table
"assurés"


était à 45, le champs "id" est maintenant en mode compteur avec un début
à


46 et un incrément de 1
J'ai aussi remis mes "id" comme clés primaires dans SQL Server.

J'ai par contre un problème de remplissage des données par l'utilisateur
maintenant.
Dans un formulaire en mode lignes, je complète mes enregistrements et
mon


"id" se met automatiquement, comme avant. Impeccable
Mais dans un formulaire en mode formulaire, le champ "id" ne se complète
pas


automatiquement et du coup j'obtiens une erreur me précisant que la
valeur


null est interdite pour ce champ (normal) et mon enregistrement n'est
pas


sauvegardé.
Je pensais à forcer l'enregistrement pour qu'il complète le champ "id"
tout


seul mais ça ne change pas grand chose. J'ai regardé du côté de
Docmd.Save ,


de Refresh, Requery mais pas mieux...

Savez vous ce qu'il faut faire pour que ce champ (clé primaire, int en
mode


compteur) se complète tout seul comme ça le faisait sous access quand
c'était un numéroauto ?

Merci ;-)

Seb








Avatar
Asarus \(Sebastien Candela\)
Bon, j'ai trouvé la source (toute stupide) de mes ennuis...

J'ai un champ de type binaire dans certaines tables. A la migration ce champ
a été déclaré comme obligatoire mais ma valeur par défaut a disparu. Dans
mon formulaire ce champ n'est pas affiché car il sert pour une gestion
interne. Résultat, le champ se trouvait sans valeur au moment d'ajouter
l'enregistrement et voici d'où venait l'erreur...
Il a juste fallu mettre une valeur par défaut (à 1 pour ce que je fais avec)
pour résoudre le problème.

Désolé du dérangement et ça explique aussi pourquoi je n'avais pas trouvé de
réponse à mon "faux problème" ;-)

Seb


"Pierre CFI" a écrit dans le message de news:

bonjour
ce qui m'étonne c'est que çà marche avec un form en tableau et pas en
continu

supprime ce champ du form et recrée le pour voir

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Asarus (Sebastien Candela)" a écrit
dans le message de news:

3f98f1ca$0$261$
Bonjour,

J'ai recherché un peu partout dans les news mais je ne trouve pas de
réponse


précise à mon problème. Alors je me permet de vous le soumettre.

Je suis en migration d'access 2000 vers sql server 2000.
Mes données sont migrées et tous mes anciens champs de type "numéroauto"
ont


été passés en "int". J'ai ensuite modifié les propriétés pour activer
l'option "compteur" avec une valeur de départ correspondant au maximum
de ce


que j'avais dans chaque table + 1 et un incrément de 1.
Bref pour faire simple, si mon plus grand champ "id" de la table
"assurés"


était à 45, le champs "id" est maintenant en mode compteur avec un début
à


46 et un incrément de 1
J'ai aussi remis mes "id" comme clés primaires dans SQL Server.

J'ai par contre un problème de remplissage des données par l'utilisateur
maintenant.
Dans un formulaire en mode lignes, je complète mes enregistrements et
mon


"id" se met automatiquement, comme avant. Impeccable
Mais dans un formulaire en mode formulaire, le champ "id" ne se complète
pas


automatiquement et du coup j'obtiens une erreur me précisant que la
valeur


null est interdite pour ce champ (normal) et mon enregistrement n'est
pas


sauvegardé.
Je pensais à forcer l'enregistrement pour qu'il complète le champ "id"
tout


seul mais ça ne change pas grand chose. J'ai regardé du côté de
Docmd.Save ,


de Refresh, Requery mais pas mieux...

Savez vous ce qu'il faut faire pour que ce champ (clé primaire, int en
mode


compteur) se complète tout seul comme ça le faisait sous access quand
c'était un numéroauto ?

Merci ;-)

Seb