OVH Cloud OVH Cloud

creation d'1 table

25 réponses
Avatar
yann
Bonjour,
voila jais un code qui me cree une table avec X colonne l'or de la creation
de cette mem table je voudrais ne pas voir son execution.


Private Sub miseen()
On Error Resume Next

Dim intX As Integer, intZ As Integer
Dim VAL As String

VAL = DCount("nomimage1", "||||||||||||||||||||")
For intX = 1 To VAL
For intZ = 1 To VAL
DoEvents
DoCmd.Hourglass True
Next intZ

DoCmd.OpenTable "||||||||||||||||||||"
DoCmd.RunCommand acCmdCopy
DoCmd.FindNext
DoCmd.OpenTable "Table1"
DoCmd.RunCommand acCmdInsertTableColumn
DoCmd.RunCommand acCmdPaste
Next intX

Debug.Print VAL
DoCmd.Close acTable, "Table1"
DoCmd.Close acTable, "||||||||||||||||||||"
DoCmd.OpenForm "Formulaire1"
DoCmd.Hourglass False
End Sub

10 réponses

1 2 3
Avatar
Raymond [mvp]
Bonjour.

ta procédure n'est pas prévue pour créer une table.
tu n'as pas trouvé mieux que faire du copier/coller dans access pour remplir
une table ? tu sais qu'il existe des requêtes ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b4576c$0$27916$
Bonjour,
voila jais un code qui me cree une table avec X colonne l'or de la
creation

de cette mem table je voudrais ne pas voir son execution.


Private Sub miseen()
On Error Resume Next

Dim intX As Integer, intZ As Integer
Dim VAL As String

VAL = DCount("nomimage1", "||||||||||||||||||||")
For intX = 1 To VAL
For intZ = 1 To VAL
DoEvents
DoCmd.Hourglass True
Next intZ

DoCmd.OpenTable "||||||||||||||||||||"
DoCmd.RunCommand acCmdCopy
DoCmd.FindNext
DoCmd.OpenTable "Table1"
DoCmd.RunCommand acCmdInsertTableColumn
DoCmd.RunCommand acCmdPaste
Next intX

Debug.Print VAL
DoCmd.Close acTable, "Table1"
DoCmd.Close acTable, "||||||||||||||||||||"
DoCmd.OpenForm "Formulaire1"
DoCmd.Hourglass False
End Sub




Avatar
yann
jais poser la question deja perssone ne ma repondus booo :-( il me fon la
tete ,
je sais pas faire comme tu dit

mais oui jais les table qui son droper et cree en amont de la proc
du style "DROP TABLE ma table"
et "CREATE TABLE ma table (Champ1 CHAR)" par 2 requette .
cette proc et fait pour la remplir je n'ais pas trouver autre chose.


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

ta procédure n'est pas prévue pour créer une table.
tu n'as pas trouvé mieux que faire du copier/coller dans access pour
remplir

une table ? tu sais qu'il existe des requêtes ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b4576c$0$27916$
Bonjour,
voila jais un code qui me cree une table avec X colonne l'or de la
creation

de cette mem table je voudrais ne pas voir son execution.


Private Sub miseen()
On Error Resume Next

Dim intX As Integer, intZ As Integer
Dim VAL As String

VAL = DCount("nomimage1", "||||||||||||||||||||")
For intX = 1 To VAL
For intZ = 1 To VAL
DoEvents
DoCmd.Hourglass True
Next intZ

DoCmd.OpenTable "||||||||||||||||||||"
DoCmd.RunCommand acCmdCopy
DoCmd.FindNext
DoCmd.OpenTable "Table1"
DoCmd.RunCommand acCmdInsertTableColumn
DoCmd.RunCommand acCmdPaste
Next intX

Debug.Print VAL
DoCmd.Close acTable, "Table1"
DoCmd.Close acTable, "||||||||||||||||||||"
DoCmd.OpenForm "Formulaire1"
DoCmd.Hourglass False
End Sub








Avatar
Raymond [mvp]
regarde du côté des requêtes ajout, qui permettent de lire une table et d'en
remplir une autre en même temps.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b46b5e$0$27924$
jais poser la question deja perssone ne ma repondus booo :-( il me fon la
tete ,
je sais pas faire comme tu dit

mais oui jais les table qui son droper et cree en amont de la proc
du style "DROP TABLE ma table"
et "CREATE TABLE ma table (Champ1 CHAR)" par 2 requette .
cette proc et fait pour la remplir je n'ais pas trouver autre chose.


Avatar
yann
Je croie pas que ca puisse fonctionner

jais une table avec X ligne et 1 collonne que je veux transformer 1 ligne et
X collonne.



"Raymond [mvp]" a écrit dans le message de
news:
regarde du côté des requêtes ajout, qui permettent de lire une table et
d'en

remplir une autre en même temps.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b46b5e$0$27924$
jais poser la question deja perssone ne ma repondus booo :-( il me fon
la


tete ,
je sais pas faire comme tu dit

mais oui jais les table qui son droper et cree en amont de la proc
du style "DROP TABLE ma table"
et "CREATE TABLE ma table (Champ1 CHAR)" par 2 requette .
cette proc et fait pour la remplir je n'ais pas trouver autre chose.






Avatar
Raymond [mvp]
à part le faire en code vba, mais comment savoir que le champ unique de la
ligne 50 va aller dans la colonne 16, et que le champ unique de la ligne 60
va aller en colonne 25 ? si tu as 256 colonnes comment comptes-tu faire ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b46f44$0$27927$
Je croie pas que ca puisse fonctionner

jais une table avec X ligne et 1 collonne que je veux transformer 1 ligne
et

X collonne.



Avatar
yann
aucune importance le but de cette proc ces de pouvoirs afficher tous les
miniatures
de ma selection ,puis par un clik sur le control image fair un find de cette
image pour afficher mon resulta

je t'explique jais une base (catalogue de quincalier) 15000 ref quand je
fait mes select jais defois 250 enregistrement au maxi simplement ce nes pas
pratique pour le client de ceu deplacer sur ces 250 enregistrement donc je
lui present une plaquette de photo (au maxi pour l'instant dans ma Form j'en
ais 100) et par un clik sur la photo il va direct sur le produits voulu .

"Raymond [mvp]" a écrit dans le message de
news:
à part le faire en code vba, mais comment savoir que le champ unique de la
ligne 50 va aller dans la colonne 16, et que le champ unique de la ligne
60

va aller en colonne 25 ? si tu as 256 colonnes comment comptes-tu faire ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b46f44$0$27927$
Je croie pas que ca puisse fonctionner

jais une table avec X ligne et 1 collonne que je veux transformer 1
ligne


et
X collonne.







Avatar
Raymond [mvp]
Bonjour.

Je pense que tu devrais tout dire sur ton souci.
ton 1er post: tu veux cacher l'exécution d'une création de table
ton 2e post : les tables sont créées, c'est pour les remplir
ton 3e post: tu veux placer tes lignes en colonnes
ton 4e post : afficher des miniatures jusqu'à 250 dans un formulaire

je crois que je vais attendre encore un peu pour connaître exactement ce
qu'il te faut ?

tu expliques que ton appli fonctionne actuellement avec 100 photos. pourquoi
pas avec 250 ? à la lecture de ton dernier post, on revient au premier ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b5737b$0$7716$
aucune importance le but de cette proc ces de pouvoirs afficher tous les
miniatures
de ma selection ,puis par un clik sur le control image fair un find de
cette

image pour afficher mon resulta

je t'explique jais une base (catalogue de quincalier) 15000 ref quand je
fait mes select jais defois 250 enregistrement au maxi simplement ce nes
pas

pratique pour le client de ceu deplacer sur ces 250 enregistrement donc je
lui present une plaquette de photo (au maxi pour l'instant dans ma Form
j'en

ais 100) et par un clik sur la photo il va direct sur le produits voulu .


Avatar
yann
Non non je ne cache rein jais du mal a me faire comprendre
regarde je te donne tous on commence par droper la TABLE1 puis la recree
je fais mon select (composer de chapitre et famille et soufamille)
j'ecrie 2 requettes la 1 "prodselect.sql" qui contient tous les
enregistrements de la composition du formulaire secondaire (form qui doi
apparaitre apres la plaquette photo).
la 2 "ProdSelect Requête" qui est une requette de creation de table (SELECT
ProdSelect.NomImage1 INTO [||||||||||||||||||||]
FROM ProdSelect)
puis je fais 1 Call sur la SUB "miseen" qui ajoute les donnees à la table
"[||||||||||||||||||||]" en TABLE1 (mon copier coller)



Private Sub ChaîneSQL_Click()
On Error Resume Next
'Dim intX As Integer, intZ As Integer
Dim strMsg As String
Dim strSQL As String
Dim strSELECT As String
Dim strFROM As String
Dim strWHERE As String


DoCmd.OpenQuery "dropTable1"
MsgBox "Table Sup"
DoCmd.OpenQuery "creatTable1"
MsgBox "Table Creat"

'For intX = 1 To 100
' vu que la boucle s'exécute rapidement on ajoute une pause
'For intZ = 1 To 60
'DoEvents
'Next intZ
' Mise à jour de la barre de progression. On donne une valeur entre 1 et
intX
'Me!txtprogression = intX & "%"
'Me!txtprogression.width = 18 * intX
'Next intX
' Message final facultatif
'Me!txtprogression = "Recherche terminée"

If Cocher1.Value = False And Cocher2.Value = False And Cocher3.Value = False
Then
strMsg = " Aucun critère de sélection !"
MsgBox (strMsg)
End If
If Cocher1.Value = True And IsNull(SouF) Then
strMsg = " Vous n'avez pas effectué la saisie de la Sous-Famille !"
MsgBox (strMsg)
End If
If Cocher2.Value = True And IsNull(Famille) Then
strMsg = " Vous n'avez pas effectué la saisie de la Famille ! "
MsgBox (strMsg)
End If
If Cocher3.Value = True And IsNull(Fournisseurs) Then
strMsg = " Vous n'avez pas effectué la saisie du Fournisseur ! "
MsgBox (strMsg)
End If
If Cocher4.Value = True And IsNull(Chapitre) Then
strMsg = " Vous n'avez pas effectué la saisie du chapitre ! "
MsgBox (strMsg)
End If

If strMsg <> "" Then Exit Sub
'---------------------------------------------------------
'Requette de selection pour la construction du formulaire
'---------------------------------------------------------

strSELECT = "LBA_PRODUIT.NomProduit, LBA_PRODUIT.IdProduit,
LBA_PRODUIT.Libelle, LBA_PRODUIT.NomImage1, LBA_PRODUIT.NomImage2,
LBA_PRODUIT.NomImage3, LBA_PRODUIT.NomImage4, LBA_PRODUIT.NomImage5,
LBA_PRODUIT.NomImage6, LBA_PRODUIT.NomImage7, LBA_PRODUIT.LégendeImage2,
LBA_PRODUIT.LégendeImage3, LBA_PRODUIT.LégendeImage1,
LBA_Fournisseur.NomFournisseur, LBA_GAMME.IdGamme, LBA_GAMME.NomGamme,
LBA_FAMILLE.IdFamille, LBA_FAMILLE.NomFamille, LBA_PRODUIT.IdGamme,
LBA_PRODUIT.CDeFer "
strFROM = "((LBA_PRODUIT INNER JOIN LBA_FAMILLE ON LBA_PRODUIT.IdFamille LBA_FAMILLE.IdFamille) INNER JOIN LBA_GAMME ON LBA_PRODUIT.IdGamme LBA_GAMME.IdGamme) INNER JOIN LBA_Fournisseur ON LBA_PRODUIT.IdFournisseur LBA_Fournisseur.IdFournisseur "

If Famille.Enabled = True Then
strWHERE = strWHERE & " And LBA_FAMILLE.IdFamille = " & Famille
End If
If SouF.Enabled = True Then
strWHERE = strWHERE & " AND LBA_GAMME.IdGamme = " & SouF
End If
If Fournisseurs.Enabled = True Then
strWHERE = strWHERE & " AND LBA_Fournisseur.IDfournisseur = " &
Fournisseurs
End If

strSQL = "SELECT " & strSELECT
strSQL = strSQL & "FROM " & strFROM
strSQL = strSQL & "WHERE " & Mid$(strWHERE, 6) & " ORDER BY
LBA_PRODUIT.CdeFer" & ";"
CurrentDb.QueryDefs("prodselect").SQL = strSQL
DoCmd.OpenQuery "ProdSelect Requête"

Call miseen

End Sub

Private Sub miseen()
On Error Resume Next


Dim intX As Integer, intZ As Integer
Dim VAL As String

VAL = DCount("nomimage1", "||||||||||||||||||||")
For intX = 1 To VAL
For intZ = 1 To VAL
DoEvents
DoCmd.Hourglass True
Next intZ

DoCmd.OpenTable "||||||||||||||||||||"
DoCmd.RunCommand acCmdCopy
DoCmd.FindNext
DoCmd.OpenTable "Table1"
DoCmd.RunCommand acCmdInsertTableColumn
DoCmd.RunCommand acCmdPaste
Next intX

Debug.Print VAL
DoCmd.Close acTable, "Table1"
DoCmd.Close acTable, "||||||||||||||||||||"
DoCmd.OpenForm "Formulaire1"
DoCmd.Hourglass False
End Sub

"Raymond [mvp]" a écrit dans le message de
news:O4bu%
Bonjour.

Je pense que tu devrais tout dire sur ton souci.
ton 1er post: tu veux cacher l'exécution d'une création de table
ton 2e post : les tables sont créées, c'est pour les remplir
ton 3e post: tu veux placer tes lignes en colonnes
ton 4e post : afficher des miniatures jusqu'à 250 dans un formulaire

je crois que je vais attendre encore un peu pour connaître exactement ce
qu'il te faut ?

tu expliques que ton appli fonctionne actuellement avec 100 photos.
pourquoi

pas avec 250 ? à la lecture de ton dernier post, on revient au premier ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b5737b$0$7716$
aucune importance le but de cette proc ces de pouvoirs afficher tous les
miniatures
de ma selection ,puis par un clik sur le control image fair un find de
cette

image pour afficher mon resulta

je t'explique jais une base (catalogue de quincalier) 15000 ref quand
je


fait mes select jais defois 250 enregistrement au maxi simplement ce nes
pas

pratique pour le client de ceu deplacer sur ces 250 enregistrement donc
je


lui present une plaquette de photo (au maxi pour l'instant dans ma Form
j'en

ais 100) et par un clik sur la photo il va direct sur le produits voulu
.







Avatar
Raymond [mvp]
si j'ai bien compris tu as 7 images possibles par enregistrement de produit
? Si tu passes par une table tu auras maximum 250 photos . il faudrait
passer par le formulaire directement pour approcher les 700 photos maxi. que
voudrais-tu ?
si on passe par la table 250 photos, il est préférable que les contrôles
soient présents en permanence dans le formulaire pour éviter la création de
250 contrôles photos.
Lire ta requête par VBA (voir problème si plusieurs photos par
enregistrement) et placer les photos dans les contrôles (images ou cadre
indépendant). Avec un clic sur la photo, le numéro de la photo permettra
d'aller chercher le même enregistrement dans la requête et de récupérer tous
les champs pour la suite du programme.
ai-je bien compris
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b58d08$0$7705$
Non non je ne cache rein jais du mal a me faire comprendre
regarde je te donne tous on commence par droper la TABLE1 puis la recree
je fais mon select (composer de chapitre et famille et soufamille)
j'ecrie 2 requettes la 1 "prodselect.sql" qui contient tous les
enregistrements de la composition du formulaire secondaire (form qui doi
apparaitre apres la plaquette photo).
la 2 "ProdSelect Requête" qui est une requette de creation de table
(SELECT

ProdSelect.NomImage1 INTO [||||||||||||||||||||]
FROM ProdSelect)
puis je fais 1 Call sur la SUB "miseen" qui ajoute les donnees à la table
"[||||||||||||||||||||]" en TABLE1 (mon copier coller)


Avatar
yann
oui oui ces presque ca


pour la plaquette photo j'utilise qu'une seul photo ces sur la form
secondaire ou il y a plus d'images mais sur celci pas de broblem ces sur la
construction de la plaquette que ceu pose le problem.
voila jais fais une Form avec pour l'instant avec 100 control image et 250
control de champ pour le chemin de la miniature.
d'aillieur cettais fastidieu pour faire le code exemple

Dim strChemin1 As String
Dim strQuoi As String
Dim REPBASE As Variant
strQuoi = DLookup("repertoire", "[Informations sur ma société]")
REPBASE = strQuoi '"d:applysphoto"
strChemin1 = REPBASE & "" & Me!Champ2
strChemin2 = REPBASE & "" & Me!Champ3

Me!Image1.Picture = strChemin1
Me!Image2.Picture = strChemin2
Me!Image3.Picture = strChemin3

autant de fois qu'il y a de photo ces pas super clean mais ca marche

"Raymond [mvp]" a écrit dans le message de
news:
si j'ai bien compris tu as 7 images possibles par enregistrement de
produit

? Si tu passes par une table tu auras maximum 250 photos . il faudrait
passer par le formulaire directement pour approcher les 700 photos maxi.
que

voudrais-tu ?
si on passe par la table 250 photos, il est préférable que les contrôles
soient présents en permanence dans le formulaire pour éviter la création
de

250 contrôles photos.
Lire ta requête par VBA (voir problème si plusieurs photos par
enregistrement) et placer les photos dans les contrôles (images ou cadre
indépendant). Avec un clic sur la photo, le numéro de la photo permettra
d'aller chercher le même enregistrement dans la requête et de récupérer
tous

les champs pour la suite du programme.
ai-je bien compris
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b58d08$0$7705$
Non non je ne cache rein jais du mal a me faire comprendre
regarde je te donne tous on commence par droper la TABLE1 puis la recree
je fais mon select (composer de chapitre et famille et soufamille)
j'ecrie 2 requettes la 1 "prodselect.sql" qui contient tous les
enregistrements de la composition du formulaire secondaire (form qui doi
apparaitre apres la plaquette photo).
la 2 "ProdSelect Requête" qui est une requette de creation de table
(SELECT

ProdSelect.NomImage1 INTO [||||||||||||||||||||]
FROM ProdSelect)
puis je fais 1 Call sur la SUB "miseen" qui ajoute les donnees à la
table


"[||||||||||||||||||||]" en TABLE1 (mon copier coller)






1 2 3