Bonjour,
J'ai un champs A numérique dans un formulaire pour lequel je voudrais une auto incrémentation lorsque je crée un nouvel enregistrement. En gros je voudrais que A prenne la valeur = (Valeur la + grande de A)+1
Merci d'avance
Bonjour,
J'ai un champs A numérique dans un formulaire pour lequel je voudrais une auto incrémentation lorsque je crée un nouvel enregistrement. En gros je voudrais que A prenne la valeur = (Valeur la + grande de A)+1
Merci d'avance
Bonjour,
Pourquoi ne change tu pas le type de ton champ dans la table ??? Et tu le mets en Numéro auto...
ou alors, à chaque insertion d'un nouvel enregistrement, tu récupère le numéro le plus grand et tu l'incrémente toi-même...
Si c'est bien ce que tu demandes
Bonjour,Envoyé par Gary_Stoupy
Impossible de changer ton type de champs en auto increment sur de l'existant
Pour ta 2° proposition j'aimerais que cela se fasse automatiquement
Merci
quand je disais tu l'incrémente toi meme, ca se fera automatiquement avec du code... il faut que tu crées un RecordSet ou alors tu passe par une liste
tu fais une requete SQL du type
Dim SQL as String
SQL = "SELECT Max(tonNumero) FROM taTable"
avec le recordset, tu récupère le numéro renvoyé puis tu l'incrémente...
et enfin, tu insère ton nouvel enregistrement avec le numéro incrémenté
j'ai toujours pas bon ?
Salut,
J'en suis là avec mon bouton nouveau :
Mais ça ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Nouveau_Click() Dim SQL As String SQL = "SELECT Max(mon_champs) FROM ma_table" DoCmd.GoToRecord , , acNewRec Me.mon_champs = SQL+1 End Sub
mon_champs est de type numérique
Encore merci
Bonjour,
Gary t'a suggéré de créer un recordset.
A+
C'est la création du Recordset qui me pose problème ...C'est mon premierEnvoyé par soltani1
Gracias
Hello,
pense à regarder dans la FAQ : http://access.developpez.com/faq/?rechercher=recordset
bonjour,
Regardes un plus bas
j'ai été aidé sur ce sujet.. si ç'a peux aider...
C'est à dire ?Envoyé par DuDe92
Parce que le sujet me semble un peu délicat à première vue
Ca fait toujours ca la première fois (je me sentais obligé de la faire désolé)
Bref, pour ton recordset moi je fais ca comme ca et ca fonctionne...)
et la tu as récupéré ton maximum (normalement héhé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim rst As New ADODB.Recordset Dim connect As New ADODB.Connection Dim maxChamp as Variant rst.Open "SELECT max(MonChamps) AS Maximum FROM MaTable", connect, adOpenForwardOnly, adLockReadOnly maxChamp = rst("Maximum")
Mais bon, je te conseille vivement de consulter la FAQ avec le lien que t'as filé cafeine...
Tu apprendras par toi-même et c'est beaucoup plus mieux (je trouvais pas d'autre mots :p)
Si il n'y a pas d'autres contraintes que le numéro auto, il assez facile d'ajouter un champ AutoNumber, ensuite supprimer le champ numérique existant et renommer le champ AutoNumber avec le nom du champ que l'on vient de supprimer.
Sauf que dans le cas présent ma table contient déjà des enregistrements dont je ne peux pas modifier le numéro. En créant un champs autonumber je repars de 1Envoyé par Heureux-oli
J'ai écrit ceci :a fait toujours ca la première fois (je me sentais obligé de la faire désolé)
Bref, pour ton recordset moi je fais ca comme ca et ca fonctionne...)
Et j'ai un message : Impossible d'utiliser cette connexion pour effectuer cette opération Elle est fermée ou non valide dans ce contexte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Nouveau_Click() Dim rst As New ADODB.Recordset Dim connect As New ADODB.Connection Dim maxChamp As Variant rst.Open "SELECT max(monchamps) AS Maximum FROM matable", connect, adOpenForwardOnly, adLockReadOnly maxChamp = rst("Maximum") DoCmd.GoToRecord , , acNewRec Me.monchamps = maxchamps End Sub
???
Merci à tous
Rajoute ça avant de faire ton rst.Open
Cela m'était sorti de la tête...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set connect = CurrentProject.Connection
Mais par contre, après, pour ton insertion, je ne suis pas sur que cela fonctionne comme tu le fais mais bon...
tente déjà ce que je t'ai dit et reviens nous voir pour la suite
Effectivement il me retourne "0" pour valeur de mon champs systematiquementEnvoyé par Gary_Stoupy
On y est presque ...
Gracias
Raaaah Lovely !!!
J'y suis arrivé :
Et ça marche !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DoCmd.GoToRecord , , acLast Dim max As Integer max = Me.A + 1 DoCmd.GoToRecord , , acNewRec Me.A = max
et si la il te renvoit 0, faut que je me creuse la tête lol
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim rst As New ADODB.Recordset Dim connect As New ADODB.Connection Dim maxChamp as Variant Set connect = CurrentProject.Connection rst.Open "SELECT max(MonChamps) AS Maximum FROM MaTable", connect, adOpenForwardOnly, adLockReadOnly maxChamp = rst("Maximum") MsgBox maxChamp
bon ben alors mon message ne sert à rien lol...
Bravo à toi... mais attention, la route est encore longue et semée d'embûches (de noël)
Bonne continuation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager