Re Riri, Jean jacques, Michel et le forum
En ce qui concerne les espaces dans les noms d'onglets, j'ai trouvé cette solution sur une demo de Robert Dezean sur Excelabo : "RD lecture données fichier fermé" à télécharger d'urgence pour ce genre de problème . Merci à lui.
For Each xlSheet In cat.Tables
nombrut = xlSheet.Name
'élimination des "$" d'après Robert Dezean/ Excelabo (merci)
If Right(nombrut, 1) = "$" Then
''' Les noms de feuille se terminent toujours par un "$"
nomcorrige = Left(nombrut, Len(nombrut) - 1)
ElseIf Right(nombrut, 2) = "$'" Then
''' sauf les noms de feuille avec des espaces (renvoyés entre apostrophes) -fs
nomcorrige = Mid(nombrut, 2, Len(nombrut) - 3)
' on remplit la liste déroulante des feuilles
Me.CbxFeuille.AddItem (nomcorrige)
End If
Next
Dans la macro cbxfeuillechange
La ligne devient
Set requete = source.Execute("SELECT * FROM `" & onglet & "$" & zone & "` WHERE nom <>"""";")
En ajoutant le dollar entre onglet et zone
Et d'un…
En ce qui concerne les noms de champs dans les feuilles, SQL a horreur des espaces comme par exemple: "date de naissance" il faut alors mettre ce champ entre guillemets du style
["date de naissance"]
si ton nom de champ comporte des apostrophes comme "d'icioulà"
il faut alors utiliser la fonction "replace"
noble="d'icioula"
replace(noble,"'","''")
2) param lire guillemet, apostrophe,guillemet
3° param lire guillemet, apostrophe, apostrophe, guillemet
Un autre truc que j'ai vu il faudrait réduire le nombre de listrow des combobox au nombre de classeurs: j'ai planté en cliquant sur une ligne vide du cbxclasseur.
N'hésites pas à redemander, Ce pb m'intéresse car j'y cherche, cogite et découvre…
Michel