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 :

Insertion dans une BD Access


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Insertion dans une BD Access
    Slt!
    J'ai fouillé sur ce forum, je n'ai rien vu de succeptible de m'orienter c'est pourquoi je fais ce post.

    Voilà j'ai une appli qui doit se connecter à une base de données et y faire des manipulations comme insertion, modification et suppression d'enregistrements. seulement j'ai un pb dans mmon code. une connexion est déclarée comme variable globale du projet et initialisé par ouverture de la connexion au lancement de l'appli. SBDT est une source de données et strSQL est une chaine
    ma source
    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
    strSQL="INSERT INTO TBDT_CMR(numbdt,typebdt,datedeclaration,client,contribuable,transitaire,numavi,recette,mtrecette,mtfeicom,total,reglement,datesaisie,utilisateur,datemodif,numrecu,paye)"
    strSQL=strSQL+" VALUES ('" + numero + "','" +type + "','" + datedeclaration +"','"+ nomclient + "','" + contrib+ "','" 
    strSQL=strSQL + transitaire + "','" + reference+ "','" + recette + "','" + MtRecette + "','" +MtF+"','" + MtTotal +"','" + reglement + "','"
    strSQL=strSQL + DateVersChaîne(DateSys) +"','" + userConnected + "','" + "',' " + "','" + numrecu + "','" 
    SELON  mdeRèglement
    	CAS 1: strSQL=strSQL + 0 + "')"
    	CAS 2: strSQL=strSQL + 1 + "')"
    FIN	
     
    HChangeConnexion(sBDT,"UneConnexion")
    SI OuiNon("Confirmez vous l'enregistrement de ce BDT?")=Oui ALORS
    	//Préparation de la requête pour de multiples exécutions
     
        //exécution de la requête
        SI HExécuteRequêteSQL(sBDT,"UneConnexion",hRequêteSansCorrectionHF,strSQL)=Vrai ALORS
    		Info("BDT numéro  " + numerobdt + " enrégistré avec succès")		
    		//réinitialisation des champs
    		InitChamp
       SINON
    		Erreur("Erreur Hyper File : " + HErreurInfo())
       FIN		
     
    FIN
    j'ai inlassablement le message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur Hyper File : Problème d'initialisation de la requête <sBDT>,
    Fichier TBDT_CMR inconnu.
    Des idées et suggestions sont les bienvenues!

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Je ne sais pas comment ça marche en HF, mais quand je dois intervenir sur une base Acces, j'utilise SQLManagerX avec l'acces "alter" natif ADO4WD !

    Voir leur site : www.sqlManagerX.com

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Pb de version
    Il m'a toujours semblé que ces accès natif sqlmanagerX sont developpées pour les version 7i de Windev or moi je suis à la 10. Est-ce inexacte?
    Merçi pour la suggestion.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Points : 31
    Points
    31
    Par défaut
    Au vue du message d'erreur, je dirait que tu n'est pas connecté sur la bonne base de donnée !

    Comment te connecte tu à la base de donnée ?

    Personnellement, j'utilise ODBC et ensuite j'ouvre la connection avec les commandes suivantes :

    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
    gnNumConnexionAccess = SQLConnecte(sNom_du_driver_ODBC_Access,"","","","ODBC")
     
    SI gnNumConnexionAccess = 0 ALORS
    	// La connexion a échoué : affichage d'un message explicatif
    	SQLInfoGene()
    	Erreur("La connexion à la source de données " + sNom_du_driver_ODBC_Access + " a échoué.","Code erreur : " + SQL.Erreur ,	SQL.MesErreur)
    FIN
     
     
    et les ordres SQL comme suit :
     
    SQLChangeConnexion(gnNumConnexionAccess) // Si tu a plus d'une connection, sinon inutile
     
    WcodeSQL = "Select * from fichier Where condition"
     
    SI SQLExec(WcodeSql,"REQ01") alors
      SQLPremier("REQ01")
      TANTQUE PAS SQL.endehors
        Zone1 = SQLCol( "REQ01", 1)
        Zone2 = SQLCol( "REQ01", 2)
        SQLSuivant("REQ01")
      fin
    sinon
      SQLInfoGene("REQ01")
      Erreur("Erreur : " + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
      Erreur("Texte de la requette : " + wcodesql  )
    fin
    SQLFerme("REQ01")
    Et donc je n'utilise JAMAIS les ordres H... pour le SQL (Trop gourmand ! et pas toujours fiable)

  5. #5
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par rphenix
    Il m'a toujours semblé que ces accès natif sqlmanagerX sont developpées pour les version 7i de Windev or moi je suis à la 10. Est-ce inexacte?
    Merçi pour la suggestion.
    Une simple recompilation suffit. SQLManagerX est donc compatible avec WD8, WD9 et WD10.

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Pas de succès avec SQLExec, je croit qu'il me faut une instruction du genre ado.addNew
    ado("fields")=valeur

    Y at-il une solution?

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    As-tu essaye ADO4WD de SQLManagerX ?

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut ok...
    le gros problème c'est que je ne sais pas me servir de ADO4WD, je l'ai téléchargé, que dois je faire ensuite?

    Peux-tu me faire un rapide breifing de la chose, STP?

    Cdlt.

  9. #9
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut enfin...
    hexawar, je crois que tu m'avais déjà mis sur la voie. En creusant un peu, voici ce que j'ai obtenu:
    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
    Connexion OLEBD, source dbbdt:
    	NumConnexion est un entier = SQLConnecte("dbbdt", "Admin", "", "","OLEDB","MSDASQL.1")
     
    	SI NumConnexion = 0 ALORS
    		SQLInfoGene()
    		Erreur("Erreur d'ouverture de la connexion : " + SQL.MesErreur)
    	SINON
     
    exécution du sql :
    	SI SQLExec("INSERT INTO TRECU(numrecu,montantrecu) VALUES('" + numrecu + "' ,  '" + MtTotal + "')", "RequeteAjout") = 0  ALORS
    					SQLInfoGene("RequeteAjout")
    					Erreur("Erreur d'execution de la requête : " + SQL.MesErreur)
    	   			SINON
    		   			Info ("Insertion dans TRECU effectué avec succès")
    	   			FIN
    Et le tout est joué...

    A tout à l'heure.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête d'insertion dans une base ACCESS
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/11/2006, 17h41
  2. [C#] Insertion dans une table Access
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 02/10/2006, 13h24
  3. probleme insert dans une bd access
    Par ocean24 dans le forum JDBC
    Réponses: 1
    Dernier message: 14/09/2006, 18h44
  4. Problème d'insertion dans une table Access
    Par tribaleur dans le forum ASP
    Réponses: 21
    Dernier message: 27/06/2006, 08h20
  5. [C#] Insertion dans une base Access .mdb
    Par borgfabr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/03/2005, 15h30

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