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 :

Excel97 - Delphi7 - Colonne en format string


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut Excel97 - Delphi7 - Colonne en format string
    J'ai ecrit un petit bout de programme qui fait une requette sur une base de données Access97 avec delphi 7 via les composants ADO et le résultat de la requette est affiché dans un tableau Excel97.

    Une des colonnes de mon tableau contien les N° de telephone des clients.
    Le problème c'est que au moment de la insertion du N° de téléphone le premier chiffre du téléphone disparrît quand celui_ci est un 0 (zero).

    Comment faire, par le bias de programmation, pour forcer le OleObjet "g_c_ole_application" d'accepter la valeur d'une colonne ou d'une celule comme string et pas comme chiffre?

    Un court extraît de mon progarmme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // autre code ...
    g_c_ole_application:= CreateOleObject('Excel.Application');
    g_c_ole_application.visible:= Not g_c_ole_application.visible;
    l_c_worksheet:= g_c_ole_application.Workbooks.Add(xlWBATWorksheet);
    g_c_ole_application.Workbooks[1].WorkSheets[1].Name:= k_my_sheet;
     
    // autre code ...
     
    //ligne de tritre
    g_c_ole_application.Cells[1, 10].Value:= 'DOS_TEL_DOMICILE';
     
    // autre code ...
     
    g_c_ole_application.Cells[row, 10].Value:= AdoQuery1.FieldByName('DOS_TEL_DOMICILE').AsString;
    Quand la valeur de AdoQuery1.FieldByName('DOS_TEL_DOMICILE').AsString est par exemple 0199560101 le champs de la celule g_c_ole_application.Cells[row, 10].Value affiche 199560101 au lieu de 0199560101

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut
    Cela fait déjà quelques heures que je cherche à trouver une réponse à mon problème ...

    J'ai trouvé une réponse sur la page :

    http://access.developpez.com/faq/?pa...portExcelTexte

    mais ce ne vraiment pas le TOP !!! En plus un petit triangle vert s'affiche en haut, côte gauche des cellules du champs téléphonique ... Grrrrr....

    Il s'agit de faire précèder le N° de téléphone par un caracter Ascii ....
    dans ce cas un guillmets simple " ' " pour forcer le mode texte dans Excel.

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g_c_ole_application.Cells[row, 10].Value:= '''' + AdoQuery1.FieldByName('DOS_TEL_DOMICILE').AsString;
    Existe t'il une methode plus élégante que l'utilisation d'un caractere ascii en début de chaine?

    Remarque : Le même problème pourraît se poser pour les code Postales ....

    Information pour l'aministrateur de cette rubrique:
    Je considère le problème pour l'instant comme non résolu!

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Bonjour,
    Il faut formater la cellule avant d'y affecter la valeur texte, et le format n'est pas trivial effectivement, il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [...ta cellule ou range...].NumberFormat := '@';
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut
    Bonjour TicTacToe,

    MERCI pour ton aide.

    J'ai inclu le code suivant en début de mon programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g_c_ole_application.Columns[10].NumberFormat := '@';
    Le petit triangle s'affiche toujours ... cela semble inevitable ... je suppose que c'est pour bien indiquer à l'utilisateur qu'il s'agit d'un champs non numérique ...

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

Discussions similaires

  1. Excel97 - Delphi7 - Colonne en format string
    Par Didier100 dans le forum Excel
    Réponses: 2
    Dernier message: 30/01/2008, 10h47
  2. JTable, créer un comparateur de Dates au format String
    Par Nyphel dans le forum Composants
    Réponses: 7
    Dernier message: 13/02/2007, 16h15
  3. [Oracle] traitement des dates au format string
    Par shaftJackson dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/01/2007, 18h25
  4. Appel de constantes en format String
    Par Shiftane dans le forum Langage
    Réponses: 2
    Dernier message: 20/07/2006, 14h50
  5. Réponses: 11
    Dernier message: 08/10/2004, 15h12

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