Aide pour une incrémentation
Résolu
Nanille08
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Nanille08 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Nanille08 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite réaliser une base de donnée pour une collection et j'aimerais que ma clé se crée automatiquement, il faudrait quelle récupère les 3 premières lettre d'un mot, les 3 première d'un autre et quelle incrémente un numéro ensuite. Sachant que si les 6 lettres sont différentes, une nouvelle incrémentation commence. En plus il y aurait possibilité d'avoir des doublons dans la collection, du coup j'aimerais rajouter une lettre à la suite des chiffre afin de déterminer si c'est le premier exemplaire(a), le deuxième (b) ....
Est ce possible ou dans mes rêves les plus fous , et si c'est possible, comment faire ?
Je débute totalement avec access.
Merci de vos réponses.
Je souhaite réaliser une base de donnée pour une collection et j'aimerais que ma clé se crée automatiquement, il faudrait quelle récupère les 3 premières lettre d'un mot, les 3 première d'un autre et quelle incrémente un numéro ensuite. Sachant que si les 6 lettres sont différentes, une nouvelle incrémentation commence. En plus il y aurait possibilité d'avoir des doublons dans la collection, du coup j'aimerais rajouter une lettre à la suite des chiffre afin de déterminer si c'est le premier exemplaire(a), le deuxième (b) ....
Est ce possible ou dans mes rêves les plus fous , et si c'est possible, comment faire ?
Je débute totalement avec access.
Merci de vos réponses.
A voir également:
- Aide pour une incrémentation
- Incrémenter une série excel ne fonctionne pas ✓ - Forum Excel
- Souci d'incrémentation automatique sur EXCEL ✓ - Forum Excel
- Incrémentation automatique ne fonctionne pas - Forum Excel
- Problème excel ✓ - Forum Excel
- Incrémenter nombres dans cellules de colonne selon un filtre - Forum Excel
9 réponses
Un truc du genre :
"livre" "mécanique" => id = "livméc" et si c'est pas le premier "licmécX" où X vaut "a", puis "b", etc ?
Je te conseille d'avoir quand même une key primaire en numéro auto_increment, parce si tu commence à chercher sur ta clé avec des doublons ça va mettre le bazar (il me semble)
Je peux pas t'être d'une grande aide à part te souhaiter bon courage pour ton développement :)
"livre" "mécanique" => id = "livméc" et si c'est pas le premier "licmécX" où X vaut "a", puis "b", etc ?
Je te conseille d'avoir quand même une key primaire en numéro auto_increment, parce si tu commence à chercher sur ta clé avec des doublons ça va mettre le bazar (il me semble)
Je peux pas t'être d'une grande aide à part te souhaiter bon courage pour ton développement :)
Hummm pas tout compris, je débute totalement, mais en gros le code que je veux obtenir sera celui qui permettra de nommer chaque échantillon, donc il faut que je trouve comment réussir à la faire automatiquement. Je me vois mal devoir rentrer ça à chaque fois, surtout devoir retrouver le dernier numéro donné pour mettre le suivant.
Normalement il ne peut pas y avoir de doublons sur une clé d'après ce que j'ai pu comprendre depuis 2 jours que je débute avec access non ?
Normalement il ne peut pas y avoir de doublons sur une clé d'après ce que j'ai pu comprendre depuis 2 jours que je débute avec access non ?
Salut,
si c'est une clé primaire, alors les doublons sont interdits...
Pour une clé primaire personnalisée, tu peux faire des recherches sur google, il y a de la matière...
si c'est une clé primaire, alors les doublons sont interdits...
Pour une clé primaire personnalisée, tu peux faire des recherches sur google, il y a de la matière...
Bonjour
Un exemple que j'ai utilise dans une base
Un N°auto plus champ saison.
Ce qui me créeé une cle primaire dans un champ IdAdhIns
Saison et IdAdh sont des champs present dans le formulaire
Ce qui me donne par exemple 2010\2011~1544
Private Sub IdAdhIns_Enter()
Dim AdhIns, AdhIns1
'calcul la clé primaire
AdhIns = Left([Saison], 9) & "~" & Right([IdAdh], 4)
'AdhIns1 = Mid([Code activité], 1, 4)
Me.[IdAdhIns] = AdhIns
End Sub
Si cela peut d'aider
Un exemple que j'ai utilise dans une base
Un N°auto plus champ saison.
Ce qui me créeé une cle primaire dans un champ IdAdhIns
Saison et IdAdh sont des champs present dans le formulaire
Ce qui me donne par exemple 2010\2011~1544
Private Sub IdAdhIns_Enter()
Dim AdhIns, AdhIns1
'calcul la clé primaire
AdhIns = Left([Saison], 9) & "~" & Right([IdAdh], 4)
'AdhIns1 = Mid([Code activité], 1, 4)
Me.[IdAdhIns] = AdhIns
End Sub
Si cela peut d'aider
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
Dans ce lien du code pour créer une clé primaire personnalisée
https://www.cjoint.com/?CFrkYcUtyyL
Dans ce lien du code pour créer une clé primaire personnalisée
https://www.cjoint.com/?CFrkYcUtyyL
Voilà mon code :
Option Compare Database
Function fNumAutoTxt(strTbl$, strFldAuto$, strTxtStart$, intLenId%) As String
'** La référence "Microsoft DAO x.x Object Library est nécessaire
'** sur l'événement "Après mise à jour" qui consitue "strTxtStart"
Dim rst As DAO.Recordset
Dim strRst As String
Dim lngId As Long
strRst = "Select [" & Clé_espèce & "] From [" & Table_Espèce & "] ORDER BY [" & Clé_espèce & "];"
Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.FindLast "[" & Clé_espèce & "] like """ & Embranchement & Famille & "*"" " & " AND Len([" & Clé_espèce & "]) = " & Len(Embranchement & Famille) + 4
If .NoMatch = True Then
lngId = 1
Else
lngId = CLng(Mid(.Fields(Clé_espèce), Len(Embranchement & Famille) + 1)) + 1
End If
End If
End With
rst.Close: Set rst = Nothing
fNumAutoTxt = Embranchement & Famille & Format(lngId, String(intLenId, "0"))
End Function
Private Sub Embranchement_AfterUpdate()
Me.Clé_espèce = fNumAutoTxt("Table_Espèce", "Clé_espèce", Left(Embranchement, 3) & Left(Famille, 3), 4)
End Sub
Private Sub Famille_AfterUpdate()
Me.Clé_espèce = fNumAutoTxt("Table_Espèce", "Clé_espèce", Left(Embranchement, 3) & Left(Famille, 3), 4)
End Sub
J'ai un message d'erreur qui s'affiche : " Erreur d'exécution '3131' Erreur de syntaxe dans la clause FROM. "
Et la ligne : Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset) est surlignée en jaune.
Est ce que quelqu'un peut me dire si le code est bon ? ou sinon d'où provient mon erreur ?
Option Compare Database
Function fNumAutoTxt(strTbl$, strFldAuto$, strTxtStart$, intLenId%) As String
'** La référence "Microsoft DAO x.x Object Library est nécessaire
'** sur l'événement "Après mise à jour" qui consitue "strTxtStart"
Dim rst As DAO.Recordset
Dim strRst As String
Dim lngId As Long
strRst = "Select [" & Clé_espèce & "] From [" & Table_Espèce & "] ORDER BY [" & Clé_espèce & "];"
Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.FindLast "[" & Clé_espèce & "] like """ & Embranchement & Famille & "*"" " & " AND Len([" & Clé_espèce & "]) = " & Len(Embranchement & Famille) + 4
If .NoMatch = True Then
lngId = 1
Else
lngId = CLng(Mid(.Fields(Clé_espèce), Len(Embranchement & Famille) + 1)) + 1
End If
End If
End With
rst.Close: Set rst = Nothing
fNumAutoTxt = Embranchement & Famille & Format(lngId, String(intLenId, "0"))
End Function
Private Sub Embranchement_AfterUpdate()
Me.Clé_espèce = fNumAutoTxt("Table_Espèce", "Clé_espèce", Left(Embranchement, 3) & Left(Famille, 3), 4)
End Sub
Private Sub Famille_AfterUpdate()
Me.Clé_espèce = fNumAutoTxt("Table_Espèce", "Clé_espèce", Left(Embranchement, 3) & Left(Famille, 3), 4)
End Sub
J'ai un message d'erreur qui s'affiche : " Erreur d'exécution '3131' Erreur de syntaxe dans la clause FROM. "
Et la ligne : Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset) est surlignée en jaune.
Est ce que quelqu'un peut me dire si le code est bon ? ou sinon d'où provient mon erreur ?
bonjour
J'ai fait une comparaison de synthaxe entre ta raquete et une autre au hasard en reprenant les memes recherches apartir d'une table
Ma requete
SELECT T_Dates.IdDate, T_Dates.DateReunion, T_Dates.DateAn, T_Dates.datejour
FROM T_Dates
ORDER BY T_Dates.datejour;
Ta requete
strRst = "Select [" & Clé_espèce & "] From [" & Table_Espèce & "] ORDER BY [" & Clé_espèce & "];"
La requete modifié suivant la synthaxe de mon exemple
strRst = SELECT Table_Espece.Clé_espèce
FROM Table_Espèce
ORDER BY Table_Espece.Clé_espèce
J'ai fait une comparaison de synthaxe entre ta raquete et une autre au hasard en reprenant les memes recherches apartir d'une table
Ma requete
SELECT T_Dates.IdDate, T_Dates.DateReunion, T_Dates.DateAn, T_Dates.datejour
FROM T_Dates
ORDER BY T_Dates.datejour;
Ta requete
strRst = "Select [" & Clé_espèce & "] From [" & Table_Espèce & "] ORDER BY [" & Clé_espèce & "];"
La requete modifié suivant la synthaxe de mon exemple
strRst = SELECT Table_Espece.Clé_espèce
FROM Table_Espèce
ORDER BY Table_Espece.Clé_espèce
J'ai réussi après moult tentatives!!
Voici mon code si ça peut en dépanner quelques uns :
If IsNull(Me.Clé_espèce) Then
strCode = AutoNumber("Table_espèce", "Clé_espèce", "??????", 4)
strCode = Replace(strCode, "??????", Format(Mid$([Embranchement], 1, 3), ">") & Format(Mid$([Famille], 1, 3), ">"))
Me.Clé_espèce = strCode
End If
Voici mon code si ça peut en dépanner quelques uns :
If IsNull(Me.Clé_espèce) Then
strCode = AutoNumber("Table_espèce", "Clé_espèce", "??????", 4)
strCode = Replace(strCode, "??????", Format(Mid$([Embranchement], 1, 3), ">") & Format(Mid$([Famille], 1, 3), ">"))
Me.Clé_espèce = strCode
End If
Finalement c'était pas le top du top mon code.
Voilà un lien qui vous permettra de réaliser un numéro similaire avec un tutoriel très bien fait :
https://grenier.self-access.com/?post/2013/06/25/Num%C3%A9rotation-personnalis%C3%A9e-%3A-variante-3
Si ça peut aider certains
Voilà un lien qui vous permettra de réaliser un numéro similaire avec un tutoriel très bien fait :
https://grenier.self-access.com/?post/2013/06/25/Num%C3%A9rotation-personnalis%C3%A9e-%3A-variante-3
Si ça peut aider certains