Creare Stringhe rispettando il nummero di caratteri

di il
11 risposte

Creare Stringhe rispettando il nummero di caratteri

Buongiorno a tutti,
sono nuovissimo sia del forum, sia di access.
Mi sto apprestando a passare da Excel ad Access, sto facendo un po di corsi online ma ho veramente appena iniziato ed avrei bisogno di un vostro supporto.
lo scopo, oltre ad avere un database è anche quello di creare una stringa con posizioni prestabilite da copiare su un txt per far girare un programma.

ogni campo ha un numero prestabilito di caratteri, e fin qua impostarlo è stato molto semplice, quel che ora non riesco a fare è creare la stringa come creavo in excel.

ho due tipologie di campi:

- Tipologia campo Nr. 1: alfanumerico,
Prendiamo per esempio un campo settato con al massimo 10 caratteri, il file txt che devo realizzare è una stringa dova a sinistra parte con quanto scritto all'interno del mio campo ed i successivi caratteri (per arrivare a 10) non utilizzati dovranno essere sostituiti con sppazi vuoti per arrivare ai 10 caratteri.
per esempio compilo il mio campo da 10 caratteri inserendo il nome MARCO
la stringa txt che devo creare sarà: MARCO***** dove gli asterischi sono gli spazi vuoti " " per arrivare ai 10 caratteri.
In totale stringa da 10 caratteri (5 caratteri usati per MARCO + 5 caratteri spazi vuoti " ")


- Tipologia campo Nr. 2: numerico
in questo caso invece se ho 10 caratteri la stringa txt deve inserire tanti 0 tanti quanti sono i caratteri non utilizzati
Per esempio, se nel campo inserisco 99, la tringa txt dovrà essere 0000000099

con excel usavo le funzioni sinistra e testo, ma con Access non saprei proprio come fare, sapete darmi una mano?

poi dovrò concatenare tutti i campi per avere una stringa completa.

mi potete aiutare?
grazie mille
Massimo

11 Risposte

  • Re: Creare Stringhe rispettando il nummero di caratteri

    Ma lo stai facendo con VBA?

    Le funzioni che puoi usare sono la LEFT, la FORMAT e altre e per concatenare usi & ... basta studiarle le basi del VBA...

    P.S. Non si passa da Excel ad Access come se fossero parenti ... sono prodotti differenti con differenti scopi.
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Grazie Mille Oregon,

    sono consapervole che access ed excel sono due cose differenti.
    come ho scritto ho sempre utilizzato excel ed ora mi sto buttando ad imparare access, con tutte le difficoltà che ne conseguono.

    in merito alla tua domanda, non sto usanndo VBA, vista la "semplicità" dell'operazione e la mia pochissima esperienza pensavo di creare una stringa utilizzando le formule.
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Ma quali formule? Fai confusione con Excel
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Temo sia il generatore di espressioni...
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Pensavo di fare un campo calcolato dove attraverso una formula mi creava la stringa.
    ma a questo punto viste le vostre risposte deduco che sia completamente sbagliato.
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Niente campi calcolati in tabella sono da evitare... è una brutta invenzione di mamma MS.
    I calcoli si fanno nelle queeies.
  • Re: Creare Stringhe rispettando il nummero di caratteri

    MP84 ha scritto:


    Pensavo di fare un campo calcolato dove attraverso una formula mi creava la stringa.
    ma a questo punto viste le vostre risposte deduco che sia completamente sbagliato.
    No, no, lo puoi fare sicuramente, solo che farai un uso di funzioni non SQL in un ambiente, la query, che darebbe il meglio se potesse fare solo la query. Ah, occhio: campo calcolato in una query, non campo calcolato in tabella.
    Paradossalmente una delle difficoltà principali che troverai è l'uso del generatore di espressioni che quando ci si mette è in grado di rendere difficile anche la cosa più banale, tanto che personalmente mi trovo meglio a digitare in SQL o nella finestrella di Zoom, così non parte niente in automatico ad aiutarmi.
    Pochissimi giorni fa abbiamo affrontato una cosa simile in questo thread:
    masterdrive.it/microsoft-excel-80/conversione-numero-in-base36-102393/#post380552
    Ovviamente il thread trattava un argomento molto più ampio ma sono intervenuto proprio per la parte che interesserebbe a te.
    Molto dipende da quanta conoscenza hai della materia VBA e da quanto vuoi che il codice sia "riutilizzabile". Potresti fare tutto con una funzione creata da te (UDF, User Defined Function) a cui passare il tipo di campo, il carattere di riempimento, la lunghezza della stringa ecc ecc.
    La soluzione terra terra è
    - per i numeri da allineare a destra con zeri di riempimento: concatenare ad una stringa costituita da tanti zeri quanti sono quelli della lunghezza prevista il valore del campo che stai trattando e con la funzione Right$ prendere gli N caratteri che ti servono
    - per il testo allineato a sinistra con gli spazi di riempimento a destra: concatenare al testo che hai una stringa costituta da tanti spazi quanti sono quelli previsti per quel campo (come se tutto il campo fosse costituito da spazi) e prendere con la funzione Left$ gli N caratteri che ti servono
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Grazie Philcattivocarattere,
    ho letto il forum che mi hai indicato...temo di dover imparare ancora molto per arrivare a quel livello.
    comunque ne faccio tesoro e mi metterò a fare un po di tentativi...fino a quando affiderò il compito ad un esperto )
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Direi che sia risolvibile creando una query dove, nel SQL, scriverai:
    SELECT [Tipologia campo] & Space(10-Len([Tipologia campo])) AS Risultato FROM Tabella;
    ovvero concateni il valore che hai nel campo con tanti spazi quanto la differenza tra 10 e il numero delle cifre presenti nel campo.
  • Re: Creare Stringhe rispettando il nummero di caratteri

    Si la soluzione di Stifone è corretta a patto poi di usare un Font a dimensione fissa come.e il CURRIER NEW se serve mantenere un corretto allineamento del testo in una sezione specifica...
    Altrimenti accade che 4 parole diverse con LEN uguale occupano spazio differente...
    Es:
    Iiiii
    Wwwww

    Cosa che non accade con i font come questo
    
    Iiiii
    Wwwww
    
  • Re: Creare Stringhe rispettando il nummero di caratteri

    @Alex ha scritto:


    Si la soluzione di Stifone è corretta a patto poi di usare un Font a dimensione fissa come.e il CURRIER NEW se serve mantenere un corretto allineamento del testo in una sezione specifica...
    Vista l'apertura

    MP84 ha scritto:


    lo scopo, oltre ad avere un database è anche quello di creare una stringa con posizioni prestabilite da copiare su un txt per far girare un programma.
    credo che il problema non sussista. Resta inteso che l'uso di un carattere a dimensione fissa è molto più agevole (magari addirittura richiesto dal programma)
Devi accedere o registrarti per scrivere nel forum
11 risposte