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

Bases de données Delphi Discussion :

Problème de caractères spéciaux


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de caractères spéciaux
    Bonjour,

    J'ai un problème sur delphi quand je lance ma macro avec un objet excel (qui exporte une table dbf sur excel avec msquery), des caractères spéciaux restent les accents sont remplacés par des ù ou autres:

    Code d'appel sous Delphi :

    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
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, OleCtnrs, DBGrids, Menus, ComObj,
      Grids, ShellApi,DBCtrls, CheckLst, dblookup, FileCtrl, math, db, ExtCtrls;
    ...
    procedure TForm28.Button5Click(Sender: TObject);
    begin
            vMSExcel := CreateOleObject('Excel.Application');
            vMSExcel.visible := false;
            vMSExcel.Application.DisplayAlerts := false;
            vXLWorkbooks := vMSExcel.Workbooks;
            vXLWorkbook := vXLWorkbooks.Open('...');
            vXLWorkbook.save;
            vMSExcel.run('Macro1');
            VMSExcel.visible := true;
    end;
     
    Code appelé sous vba : 
    Sub Macro1()
       Dim chemin as String
       chemin = "..."
        Sheets("Feuil1").Select
        Sheets("Feuil1").Cells.Clear
        With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
            "ODBC;DSN=dBASE Files;DefaultDir=;DriverId=277;FIL=dBASE IV;MaxBufferSize=2048;PageTimeout=5;" _
            , Destination:=Range("$A$1")).QueryTable
            .CommandText = Array( _
            "SELECT FACTU.IDMISSION, FACTU.TYPE, FACTU.JANVIER, FACTU.FEVRIER, FACTU.MARS, FACTU.AVRIL, FACTU.MAI, FACTU.JUIN, FACTU.JUILLET, FACTU.AOUT, FACTU.SEPTEMBRE, FACTU.OCTOBRE, FACTU.NOVEMBRE, FACTU.DECEM" _
            , _
            "BRE, FACTU.AN_ACOMPTE, FACTU.MOIS_SE, FACTU.CODECLIENT, FACTU.DESIGNA_C" & Chr(13) & "" & Chr(10) & "FROM `"& chemin & "`\FACTU.DBF FACTU" _
            )
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .PreserveFormatting = True
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .ListObject.DisplayName = _
            "Tableau_Lancer_la_requête_à_partir_de_dBASE_Files5"
            .Refresh BackgroundQuery:=False
        End With
    End Sub
    Dans le résultat, j'ai des erreurs : les accents sont remplacés par des ù
    La table importée est au format dbf
    Je tiens à préciser que cela marche quand je l'exécute depuis excel, il n'y a pas d'erreurs de caractères alors que sous delphi les erreurs apparaissent.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 449
    Points : 24 856
    Points
    24 856
    Par défaut
    le code page de DBase est peut-être différent de Windows1252
    Je pense à du IBM CP 863 (DOS)

    Même comportement de la macro VB depuis un lancement par Delphi et un lancement manuel par Excel ?

    Si même : Problème de VB, voir le forum EXCEL
    Si différent, comment Delphi peut-il influencer par OLE le comportement d'Excel, "étrange" !

    TForm28, Button5 ... j'espère que tu ne laisse pas ce genre de nom dans ton programme, comment peux-tu t'y retrouver !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Problème insertion caractères spéciaux
    Par gaet_045 dans le forum Débuter
    Réponses: 3
    Dernier message: 07/07/2006, 14h42
  2. [MySQL] Problèmes avec caractères spéciaux
    Par brokengillou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/04/2006, 17h02
  3. Probléme encodage caractéres spéciaux MYSQL
    Par FoxLeRenard dans le forum Installation
    Réponses: 1
    Dernier message: 20/02/2006, 12h10
  4. [SOAP] problème de caractères spéciaux
    Par ep31 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 02/12/2005, 17h43
  5. [SQL Server] problème de caractères spéciaux
    Par mbibim63 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 02/06/2005, 18h38

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