Bonjour,
J'avais un problème pour copier des données dans une table et Ilan m'a donné
la solution, le problème, bien que ça fonctionne parfaitement, j'ai recopié
sans comprendre et ça me dérange.
Voilà le problème tel que je l'avais exposé et ça solution:
Dans la première colonne on saisie la langue par exemple 'anglais' et dans
la 2ème le niveau de connaissances de cette même langue et ainsi de suite
pour les autres langues.
Il faut que je copie dans une autre table
composée de champs suivants
LANGUE, LANGUENIVEAU
LANGUE2, LANGUE2NIVEAU
Dans 'Langue2' et 'LANGUE2NIVEAU' ont doit trouver exactement la même chose
que dans 'Langue' et 'LANGUENIVEAU'
Au fait c'est une double copie.
J'ai fait cette procédure:
Dim Db As DAO.Database
Dim TableCand As Recordset
Dim TableLang As Recordset
Dim LANGUEDEFINITIVE As Integer, InfoLANGUEDEFINITIVE As Integer,
IndiceLANGUEDEFINITIVE As Integer
Function SetLanguesConnues()
Set Db = CurrentDb
Set TableCand = Db.OpenRecordset("SELECT IDCANDIDAT, [languematernelle],
[maternelle], [1ère langue], [1parlé/écrit], [2ème langue], [2parlé/écrit],
[3ème langue], [3parlé/écrit], [4ème langue], [4parlé/écrit], [5ème langue],
[5parlé/écrit] FROM CANDIDATS WHERE IDCANDIDAT =" & Forms![TOUS
CANDIDATS].IDCANDIDAT)
Set TableLang = Db.OpenRecordset("SELECT IDCANDIDAT, LANGUE, LANGUENIVEAU,
LANGUE2, LANGUE2NIVEAU FROM LANGUESCONNUES ORDER BY IDCANDIDAT;")
If Not (TableCand.BOF And TableCand.EOF) Then
TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT)
If TableLang.NoMatch Then
For LANGUEdef = 1 To 6
GoSub AjouterLANGUEDEFINITIVE
GoSub EcrireLANGUEDEFINITIVE
Next LANGUEdef
Else
For LANGUEdef = 1 To 6
If TableLang.EOF Then
GoSub AjouterLANGUEDEFINITIVE
Else
If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then
GoSub AjouterLANGUEDEFINITIVE
Else
TableLang.Edit
End If
End If
GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef
End If
End If
TableCand.Close
TableLang.Close
Exit Function
EcrireLANGUEDEFINITIVE:
For Langue = 0 To 1
For InfoLANGUEDEFINITIVE = 1 To 2
IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE
TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) =
TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue
Next InfoLANGUEDEFINITIVE
TableLang.Update
Return
End Function
Pour que je puisse comprendre le mécanisme de copie dans plusiures champs:
Si par exemple la 2ème table avait
LANGUE, LANGUENIVEAU
LANGUE2, LANGUE2NIVEAU
LANGUE3, LANGUE3NIVEAU
LANGUE4, LANGUE4NIVEAU
Et que l'on veuille copier les données des champs de la première table dans
les champs de la 2ème, toujours sur le même principe.
Quelle serait la solution?
Mon problème c'est de comprendre ce mécanisme:
EcrireLANGUEDEFINITIVE:
For Langue = 0 To 1
For InfoLANGUEDEFINITIVE = 1 To 2
IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE
TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) =
TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue
Next InfoLANGUEDEFINITIVE
TableLang.Update
Return
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre CFI [mvp]
bonjour dédiou, pour une base de données, c'est une base de données :o)) je serais curieux de savoir comment elle est faite et son but :o))) dejà de copier 2 fois la méme chose, je freine des 4 fers (pour 3stone qui evidement ne va pas me louper, les anes ne sont pas ferrés)
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer Access http://users.skynet.be/mpfa/ Excel http://www.excelabo.net
"Luis" a écrit dans le message de news:
Bonjour, J'avais un problème pour copier des données dans une table et Ilan m'a donné la solution, le problème, bien que ça fonctionne parfaitement, j'ai recopié sans comprendre et ça me dérange. Voilà le problème tel que je l'avais exposé et ça solution:
Dans la première colonne on saisie la langue par exemple 'anglais' et dans la 2ème le niveau de connaissances de cette même langue et ainsi de suite pour les autres langues.
Il faut que je copie dans une autre table composée de champs suivants
LANGUE, LANGUENIVEAU LANGUE2, LANGUE2NIVEAU
Dans 'Langue2' et 'LANGUE2NIVEAU' ont doit trouver exactement la même chose que dans 'Langue' et 'LANGUENIVEAU'
Au fait c'est une double copie.
J'ai fait cette procédure:
Dim Db As DAO.Database Dim TableCand As Recordset Dim TableLang As Recordset Dim LANGUEDEFINITIVE As Integer, InfoLANGUEDEFINITIVE As Integer, IndiceLANGUEDEFINITIVE As Integer
Function SetLanguesConnues()
Set Db = CurrentDb Set TableCand = Db.OpenRecordset("SELECT IDCANDIDAT, [languematernelle], [maternelle], [1ère langue], [1parlé/écrit], [2ème langue], [2parlé/écrit], [3ème langue], [3parlé/écrit], [4ème langue], [4parlé/écrit], [5ème langue], [5parlé/écrit] FROM CANDIDATS WHERE IDCANDIDAT =" & Forms![TOUS CANDIDATS].IDCANDIDAT)
Set TableLang = Db.OpenRecordset("SELECT IDCANDIDAT, LANGUE, LANGUENIVEAU, LANGUE2, LANGUE2NIVEAU FROM LANGUESCONNUES ORDER BY IDCANDIDAT;")
If Not (TableCand.BOF And TableCand.EOF) Then TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT) If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef End If End If TableCand.Close TableLang.Close Exit Function
EcrireLANGUEDEFINITIVE: For Langue = 0 To 1 For InfoLANGUEDEFINITIVE = 1 To 2 IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) > TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue Next InfoLANGUEDEFINITIVE TableLang.Update Return End Function
Pour que je puisse comprendre le mécanisme de copie dans plusiures champs:
Si par exemple la 2ème table avait LANGUE, LANGUENIVEAU LANGUE2, LANGUE2NIVEAU LANGUE3, LANGUE3NIVEAU LANGUE4, LANGUE4NIVEAU Et que l'on veuille copier les données des champs de la première table dans les champs de la 2ème, toujours sur le même principe. Quelle serait la solution? Mon problème c'est de comprendre ce mécanisme:
EcrireLANGUEDEFINITIVE: For Langue = 0 To 1 For InfoLANGUEDEFINITIVE = 1 To 2 IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) > TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue Next InfoLANGUEDEFINITIVE TableLang.Update Return
Merci pour votre aide.
Luis
bonjour
dédiou, pour une base de données, c'est une base de données :o)) je serais curieux de savoir comment elle est faite et son but :o)))
dejà de copier 2 fois la méme chose, je freine des 4 fers (pour 3stone qui evidement ne va pas me louper, les anes ne sont pas
ferrés)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
"Luis" <Luis@discussions.microsoft.com> a écrit dans le message de news: B63A58E4-51AD-402A-9C2C-DDF68BD9FB27@microsoft.com...
Bonjour,
J'avais un problème pour copier des données dans une table et Ilan m'a donné
la solution, le problème, bien que ça fonctionne parfaitement, j'ai recopié
sans comprendre et ça me dérange.
Voilà le problème tel que je l'avais exposé et ça solution:
Dans la première colonne on saisie la langue par exemple 'anglais' et dans
la 2ème le niveau de connaissances de cette même langue et ainsi de suite
pour les autres langues.
Il faut que je copie dans une autre table
composée de champs suivants
LANGUE, LANGUENIVEAU
LANGUE2, LANGUE2NIVEAU
Dans 'Langue2' et 'LANGUE2NIVEAU' ont doit trouver exactement la même chose
que dans 'Langue' et 'LANGUENIVEAU'
Au fait c'est une double copie.
J'ai fait cette procédure:
Dim Db As DAO.Database
Dim TableCand As Recordset
Dim TableLang As Recordset
Dim LANGUEDEFINITIVE As Integer, InfoLANGUEDEFINITIVE As Integer,
IndiceLANGUEDEFINITIVE As Integer
Function SetLanguesConnues()
Set Db = CurrentDb
Set TableCand = Db.OpenRecordset("SELECT IDCANDIDAT, [languematernelle],
[maternelle], [1ère langue], [1parlé/écrit], [2ème langue], [2parlé/écrit],
[3ème langue], [3parlé/écrit], [4ème langue], [4parlé/écrit], [5ème langue],
[5parlé/écrit] FROM CANDIDATS WHERE IDCANDIDAT =" & Forms![TOUS
CANDIDATS].IDCANDIDAT)
Set TableLang = Db.OpenRecordset("SELECT IDCANDIDAT, LANGUE, LANGUENIVEAU,
LANGUE2, LANGUE2NIVEAU FROM LANGUESCONNUES ORDER BY IDCANDIDAT;")
If Not (TableCand.BOF And TableCand.EOF) Then
TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT)
If TableLang.NoMatch Then
For LANGUEdef = 1 To 6
GoSub AjouterLANGUEDEFINITIVE
GoSub EcrireLANGUEDEFINITIVE
Next LANGUEdef
Else
For LANGUEdef = 1 To 6
If TableLang.EOF Then
GoSub AjouterLANGUEDEFINITIVE
Else
If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then
GoSub AjouterLANGUEDEFINITIVE
Else
TableLang.Edit
End If
End If
GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef
End If
End If
TableCand.Close
TableLang.Close
Exit Function
EcrireLANGUEDEFINITIVE:
For Langue = 0 To 1
For InfoLANGUEDEFINITIVE = 1 To 2
IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE
TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) > TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue
Next InfoLANGUEDEFINITIVE
TableLang.Update
Return
End Function
Pour que je puisse comprendre le mécanisme de copie dans plusiures champs:
Si par exemple la 2ème table avait
LANGUE, LANGUENIVEAU
LANGUE2, LANGUE2NIVEAU
LANGUE3, LANGUE3NIVEAU
LANGUE4, LANGUE4NIVEAU
Et que l'on veuille copier les données des champs de la première table dans
les champs de la 2ème, toujours sur le même principe.
Quelle serait la solution?
Mon problème c'est de comprendre ce mécanisme:
EcrireLANGUEDEFINITIVE:
For Langue = 0 To 1
For InfoLANGUEDEFINITIVE = 1 To 2
IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE
TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) > TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue
Next InfoLANGUEDEFINITIVE
TableLang.Update
Return
bonjour dédiou, pour une base de données, c'est une base de données :o)) je serais curieux de savoir comment elle est faite et son but :o))) dejà de copier 2 fois la méme chose, je freine des 4 fers (pour 3stone qui evidement ne va pas me louper, les anes ne sont pas ferrés)
-- Pierre CFI MVP Microsoft Access Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer Access http://users.skynet.be/mpfa/ Excel http://www.excelabo.net
"Luis" a écrit dans le message de news:
Bonjour, J'avais un problème pour copier des données dans une table et Ilan m'a donné la solution, le problème, bien que ça fonctionne parfaitement, j'ai recopié sans comprendre et ça me dérange. Voilà le problème tel que je l'avais exposé et ça solution:
Dans la première colonne on saisie la langue par exemple 'anglais' et dans la 2ème le niveau de connaissances de cette même langue et ainsi de suite pour les autres langues.
Il faut que je copie dans une autre table composée de champs suivants
LANGUE, LANGUENIVEAU LANGUE2, LANGUE2NIVEAU
Dans 'Langue2' et 'LANGUE2NIVEAU' ont doit trouver exactement la même chose que dans 'Langue' et 'LANGUENIVEAU'
Au fait c'est une double copie.
J'ai fait cette procédure:
Dim Db As DAO.Database Dim TableCand As Recordset Dim TableLang As Recordset Dim LANGUEDEFINITIVE As Integer, InfoLANGUEDEFINITIVE As Integer, IndiceLANGUEDEFINITIVE As Integer
Function SetLanguesConnues()
Set Db = CurrentDb Set TableCand = Db.OpenRecordset("SELECT IDCANDIDAT, [languematernelle], [maternelle], [1ère langue], [1parlé/écrit], [2ème langue], [2parlé/écrit], [3ème langue], [3parlé/écrit], [4ème langue], [4parlé/écrit], [5ème langue], [5parlé/écrit] FROM CANDIDATS WHERE IDCANDIDAT =" & Forms![TOUS CANDIDATS].IDCANDIDAT)
Set TableLang = Db.OpenRecordset("SELECT IDCANDIDAT, LANGUE, LANGUENIVEAU, LANGUE2, LANGUE2NIVEAU FROM LANGUESCONNUES ORDER BY IDCANDIDAT;")
If Not (TableCand.BOF And TableCand.EOF) Then TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT) If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef End If End If TableCand.Close TableLang.Close Exit Function
EcrireLANGUEDEFINITIVE: For Langue = 0 To 1 For InfoLANGUEDEFINITIVE = 1 To 2 IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) > TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue Next InfoLANGUEDEFINITIVE TableLang.Update Return End Function
Pour que je puisse comprendre le mécanisme de copie dans plusiures champs:
Si par exemple la 2ème table avait LANGUE, LANGUENIVEAU LANGUE2, LANGUE2NIVEAU LANGUE3, LANGUE3NIVEAU LANGUE4, LANGUE4NIVEAU Et que l'on veuille copier les données des champs de la première table dans les champs de la 2ème, toujours sur le même principe. Quelle serait la solution? Mon problème c'est de comprendre ce mécanisme:
EcrireLANGUEDEFINITIVE: For Langue = 0 To 1 For InfoLANGUEDEFINITIVE = 1 To 2 IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * Langue) > TableCand.Fields.ItemIndiceLANGUEDEFINITIVE)
Next Langue Next InfoLANGUEDEFINITIVE TableLang.Update Return
Merci pour votre aide.
Luis
Raymond [mvp]
Bonsoir Luis.
J'ai dû te le dire 50 fois, donc pour la 51e fois, ne pas mettre des caractères accentués dans les noms de champs, ni des caractères spéciaux tels que / d'autre part tu ne peux pas traiter tes noms sous forme de tableau avec des noms pareils. Langue_1 Langue_2 ..... Parle_Ecrit_1 Parle_Ecrit_2 etc.....
et dans ce cas ci-dessus, tu n'est pas obligé de mettre les [ ] enfin, l'indentation, ça existe, ça permet de voir les erreurs:
If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
End If Next LANGUEdef End If etc.................................
Allez, salut brother................ -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de news:
Bonjour,
Bonsoir Luis.
J'ai dû te le dire 50 fois, donc pour la 51e fois, ne pas mettre des
caractères accentués dans les noms de champs, ni des caractères spéciaux
tels que /
d'autre part tu ne peux pas traiter tes noms sous forme de tableau avec des
noms pareils.
Langue_1
Langue_2
.....
Parle_Ecrit_1
Parle_Ecrit_2
etc.....
et dans ce cas ci-dessus, tu n'est pas obligé de mettre les [ ]
enfin, l'indentation, ça existe, ça permet de voir les erreurs:
If TableLang.NoMatch Then
For LANGUEdef = 1 To 6
GoSub AjouterLANGUEDEFINITIVE
GoSub EcrireLANGUEDEFINITIVE
Next LANGUEdef
Else
For LANGUEdef = 1 To 6
If TableLang.EOF Then
GoSub AjouterLANGUEDEFINITIVE
Else
If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then
GoSub AjouterLANGUEDEFINITIVE
Else
TableLang.Edit
End If
End If
GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
End If
Next LANGUEdef
End If
etc.................................
Allez, salut brother................
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" <Luis@discussions.microsoft.com> a écrit dans le message de news:
B63A58E4-51AD-402A-9C2C-DDF68BD9FB27@microsoft.com...
J'ai dû te le dire 50 fois, donc pour la 51e fois, ne pas mettre des caractères accentués dans les noms de champs, ni des caractères spéciaux tels que / d'autre part tu ne peux pas traiter tes noms sous forme de tableau avec des noms pareils. Langue_1 Langue_2 ..... Parle_Ecrit_1 Parle_Ecrit_2 etc.....
et dans ce cas ci-dessus, tu n'est pas obligé de mettre les [ ] enfin, l'indentation, ça existe, ça permet de voir les erreurs:
If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
End If Next LANGUEdef End If etc.................................
Allez, salut brother................ -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de news:
Bonjour,
Luis
Bonjour Raymond,
C'est vrai, je te remercie pour ton énorme patience. J'ai remplacé par Langue_1 Langue_2 ...... Parle_Ecrit_1 Parle_Ecrit_2 etc.....
Mais ça ne me dit pas comment je dois modifier:
If Not (TableCand.BOF And TableCand.EOF) Then TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT) If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef End If End If TableCand.Close TableLang.Close Exit Function
EcrireLANGUEDEFINITIVE: For langue = 0 To 1 For InfoLANGUEDEFINITIVE = 1 To 2 IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * langue) = TableCand.Fields.Item(IndiceLANGUEDEFINITIVE)
Next InfoLANGUEDEFINITIVE Next langue TableLang.Update Return End Function
Pour dans le cas ou la 2ème table avait LANGUE, LANGUENIVEAU LANGUE2, LANGUE2NIVEAU LANGUE3, LANGUE3NIVEAU LANGUE4, LANGUE4NIVEAU
Et que je veuille écrire non pas multiplié par 2 mais par 4.
Si tu as le mécanisme ou la solution qui permet d'écrire plusieurs fois un champ d'une table dans une autre table, ça m'aiderai à mieux comprendre.
Merci. Luis
Bonsoir Luis.
J'ai dû te le dire 50 fois, donc pour la 51e fois, ne pas mettre des caractères accentués dans les noms de champs, ni des caractères spéciaux tels que / d'autre part tu ne peux pas traiter tes noms sous forme de tableau avec des noms pareils. Langue_1 Langue_2 ...... Parle_Ecrit_1 Parle_Ecrit_2 etc.....
et dans ce cas ci-dessus, tu n'est pas obligé de mettre les [ ] enfin, l'indentation, ça existe, ça permet de voir les erreurs:
If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
End If Next LANGUEdef End If etc.................................
Allez, salut brother................ -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de news:
Bonjour,
Bonjour Raymond,
C'est vrai, je te remercie pour ton énorme patience.
J'ai remplacé par
Langue_1
Langue_2
......
Parle_Ecrit_1
Parle_Ecrit_2
etc.....
Mais ça ne me dit pas comment je dois modifier:
If Not (TableCand.BOF And TableCand.EOF) Then
TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT)
If TableLang.NoMatch Then
For LANGUEdef = 1 To 6
GoSub AjouterLANGUEDEFINITIVE
GoSub EcrireLANGUEDEFINITIVE
Next LANGUEdef
Else
For LANGUEdef = 1 To 6
If TableLang.EOF Then
GoSub AjouterLANGUEDEFINITIVE
Else
If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then
GoSub AjouterLANGUEDEFINITIVE
Else
TableLang.Edit
End If
End If
GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef
End If
End If
TableCand.Close
TableLang.Close
Exit Function
EcrireLANGUEDEFINITIVE:
For langue = 0 To 1
For InfoLANGUEDEFINITIVE = 1 To 2
IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE
TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * langue) =
TableCand.Fields.Item(IndiceLANGUEDEFINITIVE)
Next InfoLANGUEDEFINITIVE
Next langue
TableLang.Update
Return
End Function
Pour dans le cas ou la 2ème table avait
LANGUE, LANGUENIVEAU
LANGUE2, LANGUE2NIVEAU
LANGUE3, LANGUE3NIVEAU
LANGUE4, LANGUE4NIVEAU
Et que je veuille écrire non pas multiplié par 2 mais par 4.
Si tu as le mécanisme ou la solution qui permet d'écrire plusieurs fois un
champ d'une table dans une autre table, ça m'aiderai à mieux comprendre.
Merci.
Luis
Bonsoir Luis.
J'ai dû te le dire 50 fois, donc pour la 51e fois, ne pas mettre des
caractères accentués dans les noms de champs, ni des caractères spéciaux
tels que /
d'autre part tu ne peux pas traiter tes noms sous forme de tableau avec des
noms pareils.
Langue_1
Langue_2
......
Parle_Ecrit_1
Parle_Ecrit_2
etc.....
et dans ce cas ci-dessus, tu n'est pas obligé de mettre les [ ]
enfin, l'indentation, ça existe, ça permet de voir les erreurs:
If TableLang.NoMatch Then
For LANGUEdef = 1 To 6
GoSub AjouterLANGUEDEFINITIVE
GoSub EcrireLANGUEDEFINITIVE
Next LANGUEdef
Else
For LANGUEdef = 1 To 6
If TableLang.EOF Then
GoSub AjouterLANGUEDEFINITIVE
Else
If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then
GoSub AjouterLANGUEDEFINITIVE
Else
TableLang.Edit
End If
End If
GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
End If
Next LANGUEdef
End If
etc.................................
Allez, salut brother................
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" <Luis@discussions.microsoft.com> a écrit dans le message de news:
B63A58E4-51AD-402A-9C2C-DDF68BD9FB27@microsoft.com...
C'est vrai, je te remercie pour ton énorme patience. J'ai remplacé par Langue_1 Langue_2 ...... Parle_Ecrit_1 Parle_Ecrit_2 etc.....
Mais ça ne me dit pas comment je dois modifier:
If Not (TableCand.BOF And TableCand.EOF) Then TableLang.FindFirst ("IDCANDIDAT=" & TableCand!IDCANDIDAT) If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
Next LANGUEdef End If End If TableCand.Close TableLang.Close Exit Function
EcrireLANGUEDEFINITIVE: For langue = 0 To 1 For InfoLANGUEDEFINITIVE = 1 To 2 IndiceLANGUEDEFINITIVE = 2 * (LANGUEdef - 1) + InfoLANGUEDEFINITIVE TableLang.Fields.Item(InfoLANGUEDEFINITIVE + 2 * langue) = TableCand.Fields.Item(IndiceLANGUEDEFINITIVE)
Next InfoLANGUEDEFINITIVE Next langue TableLang.Update Return End Function
Pour dans le cas ou la 2ème table avait LANGUE, LANGUENIVEAU LANGUE2, LANGUE2NIVEAU LANGUE3, LANGUE3NIVEAU LANGUE4, LANGUE4NIVEAU
Et que je veuille écrire non pas multiplié par 2 mais par 4.
Si tu as le mécanisme ou la solution qui permet d'écrire plusieurs fois un champ d'une table dans une autre table, ça m'aiderai à mieux comprendre.
Merci. Luis
Bonsoir Luis.
J'ai dû te le dire 50 fois, donc pour la 51e fois, ne pas mettre des caractères accentués dans les noms de champs, ni des caractères spéciaux tels que / d'autre part tu ne peux pas traiter tes noms sous forme de tableau avec des noms pareils. Langue_1 Langue_2 ...... Parle_Ecrit_1 Parle_Ecrit_2 etc.....
et dans ce cas ci-dessus, tu n'est pas obligé de mettre les [ ] enfin, l'indentation, ça existe, ça permet de voir les erreurs:
If TableLang.NoMatch Then For LANGUEdef = 1 To 6 GoSub AjouterLANGUEDEFINITIVE GoSub EcrireLANGUEDEFINITIVE Next LANGUEdef Else For LANGUEdef = 1 To 6 If TableLang.EOF Then GoSub AjouterLANGUEDEFINITIVE Else If TableLang!IDCANDIDAT <> TableCand!IDCANDIDAT Then GoSub AjouterLANGUEDEFINITIVE Else TableLang.Edit End If End If GoSub EcrireLANGUEDEFINITIVE
If Not TableLang.EOF Then TableLang.MoveNext
End If Next LANGUEdef End If etc.................................
Allez, salut brother................ -- @+ Raymond Access MVP http://OfficeSystem.Access.free.fr/ http://OfficeSystem.Access.free.fr/runtime/ http://users.skynet.be/mpfa/ pour débuter sur le forum