IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

passer mes données access sous HF;connexion à une autre base


Sujet :

WinDev

  1. #1
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut passer mes données access sous HF;connexion à une autre base
    bonjour,

    je viens de terminé la transformation d'une base de données Access en windev.

    Je voudrais maintenant charger mes données contenues dans un fichier .mdb
    dans mes fichiers.

    Pour cela je souhaite créé une petite application indépendante.
    J'ai donc fait un nouveau projet
    Je voudrais que ce projet se connecte au fichier .mdb. Ensuite on choisit une table d'access dans une combo pour afficher les données dans une table mémoire

    Puis je change de connexion et je me connecte aux fichiers de mon premier projet.
    Enfin je transfère les données de ma table mémoire dans mon fichiers sélectionné

    La fenetre est créée mais c'était pas le plus dur.

    Je n'arrive pas à me connecter ni à mon fichier mdb ni aux fichiers de mon 1er projet.

    Dois je faire une analyse pour ce projet de transfert? (Je ne pense pas puisque je veux me connecter à d'autres base...)


    voila ce que j'ai fait pour le moment:

    je decrit mes connexion à l'ouverture de la fenetre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    connexion_access est une Connexion
    // Paramètres de la connexion
    connexion_access..Provider = hOledbAccess2000
    connexion_access..Utilisateur = ""
    connexion_access..MotDePasse = ""
    connexion_access..Source = "C:\Documents and Settings\Administrateur\Mes documents\jp.mdb"
    connexion_access..BaseDeDonnées = ""
    connexion_access..Accès = hOLectureEcriture
     
    connexion_HF est une Connexion
     
    // Paramètres de la connexion
    Provider est une chaîne  = hAccèsHF7
     
    // Création de la connexion
    HDécritConnexion(connexion_HF, "", "", "", "", Provider)
    et ensuite j'ouvre mes connexion en cliquant sur des boutons dans ma fenetre et je met les fichiers contenu dans une combo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    HOuvreConnexion(connexion_access)
    HChangeConnexion("*",connexion_access)
     
     
    // Récupérer les fichiers décrits dans l'analyse en cours
    // et dynamiquement
    ListeFichier est une chaîne
    ListeFichier = HListeFichier(hLstNormal)
     
     
    // Ajoute la liste des fichiers dans COMBO1
    ListeAjoute(COMBO_fichiersaccess, ListeFichier)
    Voila ou j'en suis. Cela fonctionnait quand j'avais importer l'analyse du fichier access.....
    Le 1er problème c'est la connexion à la base que je n'arrive pas à faire

    Merci de votre aide

  2. #2
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    je suis pas bien sur de ce passage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    connexion_access est une Connexion
    // Paramètres de la connexion
    connexion_access..Provider = hOledbAccess2000
    connexion_access..Utilisateur = ""
    connexion_access..MotDePasse = ""
    connexion_access..Source = "C:\Documents and Settings\Administrateur\Mes documents\jp.mdb"
    connexion_access..BaseDeDonnées = ""
    connexion_access..Accès = hOLectureEcriture
    Est ce que c'est bien comme ça que l'on indique le fichier à ouvrir

  3. #3
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut,
    petite question : as-tu essayé WDConver ?

  4. #4
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    oui sans grand succés car les rubriques ne correpondent pas toutes....

  5. #5
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Ton code de connexion est bon.

  6. #6
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    merci pour cette confirmation...

    La question qui tue: Pourquoi je n'arrive pas à lire mes données si mon code est bon?

    et ensuite j'ouvre mes connexion en cliquant sur des boutons dans ma fenetre et je met les fichiers contenu dans une combo:

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    HOuvreConnexion(connexion_access)
    HChangeConnexion("*",connexion_access)
     
     
    // Récupérer les fichiers décrits dans l'analyse en cours
    // et dynamiquement
    ListeFichier est une chaîne
    ListeFichier = HListeFichier(hLstNormal)
     
     
    // Ajoute la liste des fichiers dans COMBO1
    ListeAjoute(COMBO_fichiersaccess, ListeFichier)

  7. #7
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Voici un code que je viens de tester et qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    connexion_access est une Connexion
    lchListe est chaîne
    // Paramètres de la connexion
    connexion_access..Provider = hOledbAccess2000
    connexion_access..Utilisateur = ""
    connexion_access..MotDePasse = ""
    connexion_access..Source = "C:\Mes documents\Bases_de_Données\essai.mdb"
    connexion_access..BaseDeDonnées = ""
    connexion_access..Accès = hOLectureEcriture
    SI HOuvreConnexion(connexion_access)=Vrai ALORS
    	lchListe=HListeFichier(connexion_access)
    	ListeAjoute(LISTE_essai,lchListe)
    SINON
    	Info("Pas de connexion")
    FIN
    A+

  8. #8
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    salut merci pour ton code

    il a l'air de marché puisque pas de message "pas de connexion"

    Je récupère bien la liste de mes fichiers dans la combo.

    Maintenant il faudrait que j'arrive à en selectionner un et afficher ses données dans une table:

    voici ce que j'ai pour le moment sur la selection d'une ligne de ma combo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Suppression de toutes les lignes dans la table "Tableaccess"
    TableSupprimeTout(TABLE_access)
     
    // Remplir TABLE1 avec le contenu de la table sélectionnée dans la combo
    HLitPremier(COMBO_fichiersaccess..ValeurAffichée)
    FichierVersTableMémoire(TABLE_access,COMBO_fichiersaccess..ValeurAffichée)
    à l'execution j'ai le message d'erreur suivant:

    Aucune analyse n'est ouverte et le fichier xxx n'a pas été décrit.

    Pas d'analyse s'est normal, par contre je ne sais pas comment faire pour décrire un fichier... le problème c'est que selon le fichier la description ne sera surement pas la même.... je suis un peu perdu là!!

    merci de ton aide Gilles

  9. #9
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Il me semblait que j'avais ça qq part !
    Ok, tu ne changes pas la première partie pour récupérer les noms des tables. Après, tu crées la procédure suivante que tu déclenches au dble clic par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    PROCEDURE plChargeTable()
    lenConnexion est un entier
    lchSource est une chaîne
    lchUtilisateur est une chaîne = ""
    lchPwd est une chaîne = ""
    lchSQL est chaîne
    lchTypeBase est une chaîne
    // Connexion à une source de données spécifique via l'accès natif MS ACCESS
    lchSource = "C:\Mes documents\essai.mdb"
    lchTypeBase = "Access"
    lenConnexion = SQLConnecte(lchSource, lchUtilisateur, lchPwd, "", lchTypeBase)
    SI lenConnexion <> 0 ALORS
    	Sablier(Vrai)
    	TableSupprimeTout(TABLE_Table1)
    	lchSQL="select * from "+LISTE_essai..ValeurAffichée
    	SI SQLExec(lchSQL,"REQ01") ALORS
    		TANTQUE SQLAvance("REQ01") = 0
    			TableAjoute(TABLE_Table1,SQLLitCol("REQ01", 1)+TAB+SQLLitCol("REQ01", 2)+TAB+SQLLitCol("REQ01", 3))
    		FIN
    	SINON
    		Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
    	FIN
    SINON
    		Erreur("Le type de source de données" + lchTypeBase + ...
    		"a bien été trouvé mais la connexion a échoué.", ...
    		"Vérifiez le nom de la base (ou chaîne de connexion) " + ...
    		"et le mot de passe.", SQL.MesErreur)
    FIN
    Sablier(Faux)
    SQLDéconnecte()
    Il ne te reste plus qu'à faire un bout de prg pour déterminer le nombre de colonnes dans ta table fichier qui te permettra d'ajuster ta table mémoire (et le code de remplissage bien sûr).
    Dernière chose, le SQLLitCol retourne toujours des chaînes.

    A+

  10. #10
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    merci pour ce code qui marche très bien

    je cherche donc à trouver le nb de colonne de mon fichier mais je galère un peut. LEs seuls truc que j'ai trouvé pour le moment fonctionne sur des fichiers HF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sdNomfichier est une   =COMBO_fichiersaccess..ValeurAffichée
    			nbcolonne est un entier = sdNomfichier..NombreColonne
    je continue mes recherches...

    edit
    j'ai trouvé j'ai inséré ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nomcolonne est une chaîne=SQLColonne(lenconnexion,COMBO_fichiersaccess..ValeurAffichée,Faux)
    	nbcolonne est un entier = ChaîneOccurrence(nomcolonne,RC)
    	Info(nbcolonne)
    qui me permet de récupérer le nb de colonne maintenant j'essaie de modifier le code pour tenir compte de ce nb de colonne
    A+

  11. #11
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    j'ai presque réussi....

    je bloque sur cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAjoute(TABLE_Table1,SQLLitCol("REQ01", 1)+TAB+SQLLitCol("REQ01", 2)+TAB+SQLLitCol("REQ01", 3))
    J'ai reussi à faire un code pour récupérer dans une variable le code "sqllitcol("req01",1) etc... pour le nombre de colonne que contient le fichier

    Je me retrouve donc avec un code qui resseble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    	nomcolonne est une chaîne=SQLColonne(lenconnexion,COMBO_fichiersaccess..ValeurAffichée,Faux)
    	nbcolonne est un entier = ChaîneOccurrence(nomcolonne,RC)
    	//info(nbcolonne)
    	i est un entier=1
    	colonnearemplir est une chaîne = "SQLLitCol(""REQ01"", "+ i +" )+TAB+"
    	TANTQUE PAS i=nbcolonne
    		i++
    		colonnearemplir =colonnearemplir + "SQLLitCol(""REQ01"", "+ i +" )+TAB+"
    	FIN
     
    	colonnearemplir=Gauche(colonnearemplir,(Taille(colonnearemplir)-5))
    	//info(colonnearemplir)
     
    	SI SQLExec(lchSQL,"REQ01") ALORS
     
    //	HListeRubrique(COMBO_fichiersaccess..ValeurAffichée)// décrire le fichier d'abord
     
     
    TANTQUE SQLAvance("REQ01") = 0
     
    TableAjoute(TABLE_access,colonnearemplir 
    FIN
    le pb c'est que dans la derniere ligne
    TableAjoute(TABLE_access,colonnearemplir
    Le contenu de colonnaremplir n'est pas pris en compte.

    Je me retrouve donc avec une seule colonne remplie dans ma table et remplie pour toute les lignes par le texte "colonnearemplir"


    je ne sais pas si j'ai été très clair???

  12. #12
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut,
    après qqs recherches, voila le code complet qui devrait te débloquer la situation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    PROCEDURE plChargeTable()
    lenConnexion est un entier
    lenCompteur est un entier
    lencolonne est un entier
    lchSource est une chaîne
    lchUtilisateur est une chaîne = ""
    lchPwd est une chaîne = ""
    lchSQL est chaîne
    lchTypeBase est une chaîne
    lchColonne est un chaîne
    lchTable est une chaîne
    // Connexion à une source de données spécifique via l'accès natif MS ACCESS
    lchSource = "C:\Mes documents\essai.0.mdb"
    lchTypeBase = "Access"
    lenConnexion = SQLConnecte(lchSource, lchUtilisateur, lchPwd, "", lchTypeBase)
    SI lenConnexion <> 0 ALORS
    	Sablier(Vrai)
    	TableSupprimeTout(TABLE_Table1)
    	lchSQL="select * from "+LISTE_essai..ValeurAffichée
    	SI SQLExec(lchSQL,"REQ01") ALORS
    		lchColonne=SQLColonne(lenConnexion,LISTE_essai..ValeurAffichée,Faux)
    		lencolonne=ChaîneOccurrence(lchColonne,RC)+1
    		TANTQUE SQLAvance("REQ01") = 0// Il y a encore une ligne à lire
    			lchTable=""
    			POUR lenCompteur=1 A lencolonne
    				lchTable+=SQLLitCol("REQ01",lenCompteur)
    				SI lenCompteur<lencolonne ALORS
    					lchTable+=TAB	
    				FIN
    			FIN
    			TableAjoute(TABLE_Table1,lchTable)
    		FIN
    	SINON
    		Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
    	FIN
    SINON
    		Erreur("Le type de source de données" + lchTypeBase + ...
    		"a bien été trouvé mais la connexion a échoué.", ...
    		"Vérifiez le nom de la base (ou chaîne de connexion) " + ...
    		"et le mot de passe.", SQL.MesErreur)
    FIN
    Sablier(Faux)
    SQLDéconnecte()
    Il te reste à régler le pb de la définition du nombre de colonnes dans ta table mémoire ainsi que le type (chaîne/numérique) renvoyé par SQLLitCol (ne renvoye que des chaînes).

    A+

  13. #13
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    je suis vraiment très reconnaissant pour l'aide que tu m'apportes.
    Ton code fonctionne comme toujours....

    Je l'ai étudié et je pense que le mien est très proche
    J'aimerai bien comprendre pourquoi le mien ne fonctionne pas?

    Tu n'utilises pas la même méthode pour remplir ta variable "lchTable"
    mais par contre on utilise de la meme façon la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAjoute(TABLE_Table1,lchTable)

    Et la chez moi ça ne marche pas.
    Je te met mon code en entier au cas ou tu décèlerai qqchose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    PROCEDURE plChargeTable()
     
    lenConnexion est un entier
    lchSource est une chaîne
    lchUtilisateur est une chaîne = ""
    lchPwd est une chaîne = ""
    lchSQL est chaîne
    lchTypeBase est une chaîne
    // Connexion à une source de données spécifique via l'accès natif MS ACCESS
    lchSource = "C:\Documents and Settings\Administrateur\Mes documents\jp.mdb"
    lchTypeBase = "Access"
    lenConnexion = SQLConnecte(lchSource, lchUtilisateur, lchPwd, "", lchTypeBase)
    SI lenConnexion <> 0 ALORS
    	Sablier(Vrai)
    	TableSupprimeTout(TABLE_access)
     
    	lchSQL="select * from "+COMBO_fichiersaccess..ValeurAffichée
    	nomcolonne est une chaîne=SQLColonne(lenconnexion,COMBO_fichiersaccess..ValeurAffichée,Faux)
    	nbcolonne est un entier = ChaîneOccurrence(nomcolonne,RC)
    	//info(nbcolonne)
    	i est un entier=0
    	colonnearemplir est une chaîne = ""
    	TANTQUE PAS i=nbcolonne
    		i++
    		colonnearemplir+="SQLLitCol(""REQ01"", "+ i +" )+TAB+"
    	FIN
     
    	colonnearemplir=Gauche(colonnearemplir,(Taille(colonnearemplir)-5))
    	//info(colonnearemplir)
     
    	SI SQLExec(lchSQL,"REQ01") ALORS
     
    		TANTQUE SQLAvance("REQ01") = 0
     
    					TableAjoute(TABLE_access,colonnearemplir)
    			//TableAjoute(TABLE_access,SQLLitCol("REQ01", 1)+TAB+SQLLitCol("REQ01", 2)+TAB+SQLLitCol("REQ01", 3))
    		FIN
    	SINON
    		Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
    	FIN
    SINON
    	Erreur("Le type de source de données" + lchTypeBase + ...
    	"a bien été trouvé mais la connexion a échoué.", ...
    	"Vérifiez le nom de la base (ou chaîne de connexion) " + ...
    	"et le mot de passe.", SQL.MesErreur)
    FIN
    Sablier(Faux)
    SQLDéconnecte()

  14. #14
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Oui, je pense que c'est la méthode que tu utilises pour remplir la variable qui sert à la table. Essaye mon code, j'ai testé et ça marche.
    Par contre, n'oublie pas le +1 dans ChaîneOccurence.

    A+

  15. #15
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    ca y est j'ai compris pourquoi ça ne marchais pas et j'ai reussi à le corriger.

    J'ai comme ça la sensation d'en avoir fait une partie.......

    Bon je vais plancher sur la suite maintenant

  16. #16
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    Bon j'ai pas mal avancé
    j'ai réalisé ce code pour le moment sur le clic d'un bouton avant de l'insérer dans ce qui a déjà été fait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    nbco est un entier = 10
    tailleorigine est un entier =TABLE_access..Taille
    //info(tailleorigine)
    i est un entier =tailleorigine
    j est un entier = i+1
    SI tailleorigine < nbco ALORS
    	TANTQUE i < nbco
    		ChampClone("TABLE_access.COL_Colonne3","Colonnes"+j)
     
    	i++
    	j++	
    	FIN
    FIN
    SI tailleorigine > nbco ALORS
    	TANTQUE i > nbco
    		ChampSupprime("TABLE_access.COL_Colonne"+i)
    		i--
    	FIN
    FIN
    Ce code marche bien mais les colonne qui sont créée se nomme toute comme la derniere (celle qui est copiée en fait)

    alors j'ai trouvé une astuce pour les nommer autrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TABLE_access.COL_Colonne3..Titre="Colonnes"+j
    mais l'ordre des colonnes n'est pas bon je me retrouve par exemple :
    col1 col2 col10 col3 col 4 etc
    la colonne 3 étant celle clonnée!!
    edit: je viens de me rendre compte que le titre n'est pas la meme chose que le nom de la colone. Moi je change le titre mais pas le nom de la colonne ce qui cré des erreurs dans mon code.
    si je change l'affichage de ma table en sélectionnat un nouveau fichier, il m'affiche une erreur car il n'arrive pas à supprimer la colonne nommé xxxx.
    Est ce que ça à une importance pour la suite de mon projet...
    Est ce que les colonnes devront porter le même nom que celles de destination ou suffit-il qu'elles soient dans le bon ordre?

    Au sujet du type, est ce qu'il faut que j'utilise la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomcolonne est une chaîne=SQLColonne(lenconnexion,COMBO_fichiersaccess..ValeurAffichée,vrai)
    qui me donne tout le détail des colonnes du fichier à importer ou y a t'il d'autres commandes?

    merci d'avance pour ton aide...

  17. #17
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut !
    Je crois que j'ai les réponses à tes questions :
    1/ Récupérer la structure dans une table mémoire (nom et type seulement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    lchStructure=SQLColonne(lenConnexion,lst_Fichiers..ValeurAffichée,Vrai)
    TableSupprimeTout(TABLE_Table2)
    POUR TOUTE CHAINE lchDetailStructure DE lchStructure SEPAREE PAR RC
    TableAjoute(TABLE_Table2,ExtraitChaîne(lchDetailStructure,1,TAB)+TAB+ExtraitChaîne(lchDetailStructure,2,TAB))
    FIN
    2/ Renomer les colonnes en utilisant les indirections et les titres stockés précédemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    PROCEDURE plTitre(lencolonne)
    lenI est un entier
    lchTitre est une chaîne
    POUR lenI=1 _A_ lencolonne
    TableSelectPlus(TABLE_Table2,lenI)
    lchTitre="TABLE_Table1.COL_colonne"+lenI
    {lchTitre}..Titre=TABLE_Table2.COL_Nom
    FIN
    Voila, ca marche au poil et en plus avec l'indirection, tu vas pouvoir utiliser d'autres propriétés (cadrageHorizontal).

    A+

  18. #18
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    y a pas a dire t'es vraiment très fort....

    J'ai un peu merdé au début, je n'avais pas compris tout de suite que tu utilisais une autre intermédiaire.....

    J'ai cependant encore un petit pb.
    Le nom des colonnes ça marche vraiment bien. Par contre le type je suis moins sur.
    Dans la table intermédiaire la 1ere colonne se remplit avec le nom des colonnes et la 2sd avec le type des colonnes (N pour numérique et T pour texte)
    Je n'ai pas l'impression que le type soit pris en compte car si je demande un trie sur une colonne censée être numérique, j'ai un tri alphabétique (100 avant 99 par exemple)

    De plus j'ai dans le fichier de départ des types interrupteur (pris comme numérique) et date (pris comme texte). Existe t'il une solution ou faut il demander à l'utilisateur de changer le type d'une colone en choisissant par exemple dans une combo????

    merci encore

  19. #19
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut,
    je dois t'avouer qu'à ce stade je commence à merder. J'ai bien essayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELON TABLE_Table2.COL_Type
    	CAS "N"
    	{lchTitre}..TypeSaisie=typSaisieNum
    	CAS "T"
    	{lchTitre}..TypeSaisie=typSaisieTexte
    FIN
    Ca change effectivement les types de données, mais le numérique devient entier et pas moyen de lui indiquer autre chose pour obtenir un réel.
    Je cherche encore.

    A+

  20. #20
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    si c'est trop compliqué ne peut on pas modifier le type de donné à l'aide d'une combo?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/09/2015, 20h23
  2. Réponses: 0
    Dernier message: 07/11/2013, 15h39
  3. Connexion à une deuxième base de données sous Eclipse
    Par mmollinari dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 25/07/2012, 10h21
  4. probleme de connexion à une autre base
    Par ismael2108 dans le forum Connexions aux bases de données
    Réponses: 4
    Dernier message: 11/10/2007, 17h23
  5. Connexion à une autre base de donnée Access
    Par Pitou5464 dans le forum Access
    Réponses: 4
    Dernier message: 12/09/2006, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo