Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

liste déroulante - requêtes

B

bilout

Guest
bonjour à tous,
je cherche à remplir une liste déroulante avec une requête SQL.
j'ai rien trouver dans l'aide ni sur internet, je désespère d'y arriver un jour!
quelqu'un serait-il faire ça?
en tout cas, merci beaucoup!
 
@

@+Thierry

Guest
Bonjour Michel, Celeda, Bilout (qu'on n'a plus revu !!!
), Mara, le Forum

Merci Michel, j'ai téléchargé de chez moi et je regarde demain sous Access que je n'ai pas sur mon "trash computer" ici !!! Mais c'est moi qui te remercie car c'est toi qui m'apprend sur ce coup ! et pour "Grand Chef" , je pense que nous n'en avons qu'un premier... le "Grand Chef à Trois Plumes", Laurent Longre pour ne pas le nommer.... Ici sur XLD nous avons aussi notre "Grand Chef à Deux Plumes', Ti pour ne pas le nommer... Moi je suis juste un Iroquois avec un peu de duvet http://perso.monaco377.com/TEygenraam/XLDGifs/punk.gif[img] !!!

Demain je regarde, Michel et, je te tiens au courant...

Merci Mara, non ce n'est pas simpliste, rien n'est simpliste sur un Forum de Partage de Connaissance comme celui-ci. Par contre c'est un peu hors sujet, car Bilout [i](qui a disparu mais grâce à qui on évolue tous)[/i] demandait bien de remplir une Liste Déroulante [i](quelle qu'elle soit, en fait)[/i] avec une requête "SQL" [b](Structured Query Language pour les intîmes)[/b] et notre ami Michel nous propose une solution sous base de données Access. Ceci dit le Language SQL peut remonter des bases de données de toutes sortes, même "in house" sous AS400, ou Oracle, ou MySQL, ou SqlServer, ou Jean Passe...

Mais l'important est de participer, Mara et, donc, tu as très bien fait de te lancer en proposant une solution et d'ailleurs :

[img]http://imagesdeti.free.fr/ImagePourForum/Bienvenue_XLD.gif

Bonne soirée à tous et toutes
@+Thierry
 
@

@+Thierry

Guest
Arf (faut que j'utilise quand même un jour PostVL de mon ami Véri !!!

Je répète en image !!! lol
Moi je suis juste un Iroquois avec un peu de duvet !!!

LOL !!!

Même si pour ceux qui me connaissent "Live" où qui ont vu ma photo sur le wiki, suis pas vraiment Iroquois !!!

@+Thierry
 
@

@+Thierry

Guest
Bonjour Michel, Salim, Celeda, Mara, le Forum (Bilout aussi si il est encore vivant !)

Très très interressant Michel, j'ai pas mal regardé et je suis impressionné par la rapidité, juste pour le Fun j'ai fait ceci :

Sub Remplir()
Dim source As database
Dim t_list As Recordset
Dim chemin As String, nouvgrp As String
Dim i As Long

chemin = ThisWorkbook.Path

Set source = dbengine.opendatabase(chemin & "\demodao.mdb")
Set t_list = source.OpenRecordset("T_demo", dbopendynaset)


For i = 15 To 500000 'vi vi 500 Mille !!!
With t_list
.AddNew
.Fields("num") = i
.Fields("origine") = "Test" & i
.Fields("nom") = "Toto" & i
.Fields("grp") = "Grp" & i
.Update
End With
Next i

t_list.Close
source.Close
Set t_list = Nothing
Set source = Nothing

End Sub


Puis ensuite j'ai mis des Numéros aléatoires de 1 à 500,000 sur la Feuille de K3 à K24 puis dans le Nouveau Groupe Correspondant de L3 à L24 j'ai mis "TOTO" puis j'ai fait tourner la Sub exporter()....... Incroyable mais vrai !!! 1 à moins de 2 secondes

Puis j'ai improvisé cette macro là sur ta base SQL :

Sub importer_origine_SQL()
Dim Source As database
Dim T_list As Recordset
Dim Chemin As String, coin As String
Dim Groupe As String
Dim lig As Long
Chemin = ThisWorkbook.Path
Set Source = dbengine.opendatabase(Chemin & "\demodao.mdb")

Groupe = "TOTO"
Set T_list = Source.OpenRecordset _
("SELECT num, Nom, grp, origine FROM T_demo WHERE grp='" & (Groupe) & "'")

If T_list.EOF Then
MsgBox "Aucun enregistrement trouvé pour " & coin & " groupe " & Groupe
Exit Sub
End If

T_list.MoveFirst
lig = 2

While Not T_list.EOF
Cells(lig, 2) = T_list("num")
Cells(lig, 3) = T_list("nom")
Cells(lig, 4) = T_list("grp")
lig = lig + 1
T_list.MoveNext
Wend

T_list.Close
Source.Close
Set T_list = Nothing
Set Source = Nothing

End Sub

Incroyable, les 500,000 enregistrements sont parcourus en moins de temps qu'il ne faut que pour taper le mot "INCROYABLE" !!!! lol

Super génial Michel, vraiment je suis impressionné et je vais m'interresser un peu plus à toutes ces possibilités !!! Merci à Toi

Bon Aprèm
@+Thierry
 
M

Michel_M

Guest
Salut Celeda, Thierry, Salim, Mara, le Forum

Thierry,ô Grand Chef Iroquois,

Encore une fois merci. tes essais sont impressionnants: 500000 ! je n'aurais jamais osé.

Tiens, puisque cela t'intéresse et peut-être d'autres Xldiens (iennes)petit topo sur cette technologie

La technologie DAO existe toujours mais est progressivement abandonnée par Ms pour ADO qui peut dialoguer en SQL avec d'autres DB non Microsoft à condition que l'éditeur fournisse l'ODBC.

Toutefois, tu trouves des exemples DAO dans les trucs et astuces sur access, ce qui facilite l'apprentissage

A lire:
"migration de DAO vers ADO: utilisation de ADO avec le fournisseur Microsoft Jet", pavé de 132 pages à télécharger (au boulot...) depuis le site Microsoft:
tu y as des démos en DAO avec leurs "traductions" en ADO, donc exemples à la pelle dans les 2 technologies avec notamment,des topos intéressants sur la sécurité des databases

A voir :
sur Excelabo le classeur "importer table.xls" de Michel Pierron (impressionnant ! mais sans commentaires dans les codes)

sur www.info-3000.com: topos et exemples sur DAO (mon site préféré, après XLD bien sûr, mes respects à David, où j'y ai découvert les new collections)

A+, Amitiés

Michel

Dans les chefs à 3 plumes, n'aurais tu pas oublier notre Monique, la reine de la super formule qui m'évite souvent de me lancer dans des macros usines à gaz et me fait aussi Hachement progressé
 
@

@+Thierry

Guest
Petit Hommage VBA à Super Monique

Bonsoir

Tu as tout à fait raison Michel !! Voici pour me faire pardonner !

Sub SuperMonique()
Dim Super_Monique As Variant
Dim Super__Monique As String
Dim Super___Monique As Integer
Dim Super____Monique As Byte
Dim Super_____Monique As Variant

Super_____Monique = Array(83, 85, 80, 69, 82, 32, 77, 79, 78, 73, 81, 85, 69)
Super____Monique = 1
For Each Super_Monique In Super_____Monique
Super__Monique = Super__Monique & Chr(Super_Monique)
Next Super_Monique
For Each Super_Monique In Super_____Monique
For Super___Monique = 1 To Super_Monique
Cells(Super___Monique, Super____Monique) = Super__Monique
Next Super___Monique
Super____Monique = Super____Monique + 1
Next Super_Monique
End Sub

Et merci pour les liens Michel, j'avais un peu commencé ADO grace à Ti qui avait posté une jolie démo, mais le temps.... et les journées ne sont jamais assez longues !

Bonne Soirée
@+Thierry
 
T

tishow

Guest
excel vers word

Salut les gens !!!

Ben voilà, je suis en galère, je connais rien en vba, mais je peux m'y mettre facilement..., et je dois relier une "base de données" excel pour faire du publipostage de courrier vers word !!

Une sujestion ??

Merci d'avance à tous !

tishow
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…