Newsgroup: it.comp.appl.access
Titolo: Convertire campo numerico in campo testo

Ragazzi non ne riesco a venire a capo!!!!
Ho un campo numerico (senza decimali) e devo
convertirlo in campo testo di 9 caratteri con
eventuali  zeri davanti. Cosě:
NUMERI                    TESTO
1                            000000001
12                          000000012
123                        000000123
1234                      000001234
12345                    000012345
123456                  000123456
1234567                001234567
12345678              012345678
123456789            123456789
Grazie per l'aiuto.


format(numero,"000000000")
-- 
ac
y-1=x

 y-1=x
Ma scusa... cosě formatti il numero
che perň resta sempre un numero!!!
Io invece devo passare da un numero  123
ad un TESTO di 9 caratteri cosě: 000000123 

 
---------
da Help: Format
Restituisce un valore Variant (String) che contiene un'espressione 
formattata in base alle istruzioni contenute in un'espressione di formato.
--------
<polemica on>
ma che ci vieni a fare su un NG se poi non ti fidi.
Ma avrei dovuto capirlo dal nick ;<)
<polemica off>
-- 
ac
y-1=x

 ha scritto nel messaggio 
news:ItI3j.11450$r62....@tornado.fastwebnet.it...


 Grazie di nulla... passo e chiudo.
Per favore puoi rispondere dopo il quoting?
Su questo NG e' la consuetudine.
--
ac

 identico valore?
Non lo so. Ma a me non lo fa ho fatto una prova volante su un mio sistema.
Domanda sciocca. Sono entrambi capi "fisici" e non sono su un form 
continuo vero?
-- 
ac
y-1=x

 identico valore?
Forse perchè nell'impostare la formattazione condizionale hai inserito 
"minore o uguale a"?
-- 
Ciao
Geppo 

 "minore o uguale a"?
Come non detto; comunque anche cosi la formattazione fa il suo dovere.
-- 
Ciao
Geppo 

 continuo vero?
Ciao Alessandro!!!!!!
Allora tu parli di form continuo, siccome non sono sicura di cosa
intendi,
sulle proprietà della maschera ho selezionato:
Visualizzazione predefinita: maschere continue
Si trovano su questa maschera, la cui origine viene assegnata dopo
aver selezionato un criterio da casella combinata.
I due campi vengono pescati dalla query che segue. Nella tabella, i
valori sono impostati a numerico con precisione doppia, sebbene quando
io calcolo i valori li salvo in tabella con comando
cdbl(format(valore;0,000) ossia troncandoli. Quindi, x spiegarmi, apro
la tabella, seleziono il valore, questo valore è proprio a 3 cifre.
La cosa è proprio strana, perchè le condizioni in formattazione sono:
se è uguale a zero -> lo sfondo casella diventa rosso
se è maggiore di CampoB -> lo sfondo diventa verde
se è minore di CampoB ->  il testo diventa rosso
Quindi la condizione se campoA è = a campoB non è impostata da nessuna
parte.
L'orgine maschera è questa query:
SELECT TBL_DIST.dist_id, TBL_DIST.dist_codice, TBL_DIST.cli_id,
TBL_DIST.dist_tot1, TBL_DIST.dist_data,
Temp_DistintaValori.VoloVersioneListinoFly,
Temp_DistintaValori.DataListinoFissato,
Temp_DistintaValori.DataVoloVersioneListinoFly,
TBL_DIST.dist_cstgenacqf, [dist_tot1]*[dist_cstgenacqf] AS F_CGA,
[F_CGA]+[dist_tot1] AS F_SUB_CGA, TBL_DIST.dist_totlav,
TBL_DIST.dist_totcstvari, [F_sub_cga]+[dist_totlav]+[dist_totcstvari]
AS F_base_calcoloscarto, TBL_DIST.dist_scartopercf,
[f_base_calcoloscarto]*[dist_scartopercf] AS F_costoScarto,
TBL_DIST.dist_tottrasp, [f_costoscarto]+[f_base_calcoloscarto]+
[f_costoscarto] AS F_BaseMargine, TBL_DIST.dist_valmargs,
[f_basemargine]+[dist_valmargs] AS f_baseprov, TBL_DIST.dist_prov,
[f_baseprov]*[dist_prov] AS F_prov, [f_baseprov]+[f_prov] AS
f_prezzoriferimento, TBL_DIST.dist_riferimento,
Temp_DistintaValori.Base_CalcoloMargine,
Temp_DistintaValori.dist_marg, Temp_DistintaValori.MargineVolo,
Temp_DistintaValori.Provvigioni_Volo, Temp_DistintaValori.Prezzo_Volo,
Temp_DistintaValori.MargineSalvato,
Temp_DistintaValori.Provvigioni_salvato,
Temp_DistintaValori.Prezzo_salvamargine, TBL_DIST.dist_fstverslistino
FROM TBL_DIST INNER JOIN Temp_DistintaValori ON TBL_DIST.dist_id =
Temp_DistintaValori.dist_id
WHERE (((TBL_DIST.cli_id)=[forms]![msc_cstfly]![cbocliente]) AND
((Temp_DistintaValori.VoloVersioneListinoFly)=[forms]![msc_cstfly]!
[cbodata]))
ORDER BY TBL_DIST.dist_codice;
Grazie ancora!
Samantha


Ciao Geppo,
ci avevo pensato anch'io effettivamente, sarebbe la conseguenza
logica... ma ho ricontrollato anche adesso, le condizioni sono:
se uguale a zero
se maggiore di B
se minore di B
Quindi veramente non capisco cosa possa confonderlo!
;) Grazie
Samantha

 
OK sei su form continua (maschere continue) ed i campi son fisici
Il tuo post mi ha fatto venire voglia di modificare una cosa che sto 
facendo e mi sono cimentato con, pressapoco la tua situazione.
Ho rilevato l'errore che citi ma questo non sembra essere legato al 
valore numerico ma al fatto che la seconda condizione, non so per quale 
motivo, non viene applicata.
Poiche' sono ariete ascendente scorpione e con la luna nell'ascendente e 
quindi "de coccio" ho cercato di girargli intorno.
a) Cosa che non funziona:
1)ImportoA<> ImportoB: backgrey,forered---->OK
2) ImportoA< ImportoB: backgrey,foreblack---->KO
b) Cosa che funziona:
1) ImportoA< ImportoB: backgrey,black---->OK
2) ImportoA<> ImportoB: backgrey,forered---->OK
Tu mi dirai "ma non e' la stessa cosa?". Vallo a dire a quel 
prodottaccio di access.
Le famose vie del signore oltre che essere lastricate di buone 
intenzioni sono piene di trappole mortali.
-- 
ac
y-1=x


Questo accade forse perche' "diverso da" comprende "minore di" e "maggiore 
di", pertanto se applicato per primo ignora  la seconda condizione;
nel secondo caso invece viene applicata la condizione "minore di", pertanto 
"diverso da" puo' essere applicato per tutti quei dati che non sono compresi 
in "minore di".
Bho, sara' cosi.
-- 
Ciao
Geppo 


ahhhh.....diavolaccio ;<)))
-- 
ac
y-1=x

 
-- 
ac
y-1=x


Ciao Alex
Daniele


wrote:

mmmm (*sto riflettendo) ci sono tre condizioni:
Le mie sono:
se = 0 -> sfondo rosso
se > B -> sfondo verde
se < B -> carattere rosso
a questo punto, non ho scelte + scelte, perchè ho esaurito le 3
formattazioni. Allora l'uguale a zero lo imposto ad un altro campo.
TEST1
La formattazione è impostata a ImportoA e ImportoB
ImportoA < ImportoB  -> carattere rosso
ImportoA > ImportoB -> carattere verde
ImportoA = ImportoB -> carattere nero
Il test ha dato esito negativo: pazzesco, non si capisce nulla!!!
Vi riporto uno schema del risultato, con il valore e tra parentesi
l'iniziale del colore che compare (R)=rosso (V)=verde (il nero non
compare)
ImportoA   ImportoB
Valore(c)   Valore(c)
0,532(R)    0,532(V)
0,459(R)    0,458(R)
0,744(R)    0,744(V)
0,071(R)    0,071(V)
0,033(R)    0,089(V)
Da notare che la colonna con ImportoA su 100 record, anche se ha
valori maggiori di ImportoB rimane sempre rossa
Se ImportoA è = ImportoB, spesso sono entrambi rossi, e alcune volte
ImportoB diventa verde.
Insomma, non cè logica.
La formattazione condizionale che utilizzo non è da vba, ma ora provo
ad impostare le stesse regole tramite VBA, magari su evento ONCURRENT
della maschera.
Che dite?
Vi faccio sapere!
Samantha
Allora


Li la situazione e' diversa. In un report la formattazione condizionale 
mi sembra superflua.
Visto che ci sono correggo l'ipotesi
if 1' format
	applica 1
elseif 2' format
	applica 2
elseif 3' format
	applica 3
end if
Ciao Daniele
-- 
ac
y-1=x

 se < B -> carattere rosso
[cut]
uhmmmm...... io la proverei cosi'
1) se 0 :backred,foreblack
2) se < :backwhite,forered
3) se <>:backgreen,foreblack
-- 
ac
y-1=x


wrote:

ok,
probabilmente festeggiare un compleanno a base di prosecco, prima di
testare quanto da te suggeritto, non è il massimo...
Cmq, ti riporto quello che ho fatto:
Private Sub CBOCLIENTE_AfterUpdate()
With Me
        .Corpo.Visible = False 'devo inserirlo altrimenti non vedo i
prodotti
        .RecordSource = ""
        .Requery
        .Refresh
End With
Me!cboCliente.Requery
Me!cbodata.Requery 'Cosi la casella data ricalcola le date x cliente
Me!cbodata = Me!cbodata.ItemData(0) 'cosi imposta l'ultima data
With Me
        .RecordSource = "q_smcstfly"
        .Requery
End With
Dim lngBlack As Long, lngRed As Long, lngYellow As Long, lngWhite As
Long, lngGreen As Long
    lngRed = RGB(255, 0, 0)
    lngBlack = RGB(0, 0, 0)
    lngYellow = RGB(255, 255, 0)
    lngWhite = RGB(255, 255, 255)
    lngGreen = RGB(51, 204, 51)
'Se il margineVolo è uguale al margineSalvato
If Me!MargineVolo = Me!MargineSalvato Then
    Me!MargineVolo.BackColor = lngWhite
    Me!MargineVolo.ForeColor = lngBlack
    Me!MargineSalvato.BackColor = lngWhite
    Me!MargineSalvato.ForeColor = lngBlack
End If
If Me!MargineVolo > Me!MargineSalvato Then
    Me!MargineVolo.BackColor = lngGreen
    Me!MargineVolo.ForeColor = lngBlack
    Me!MargineSalvato.BackColor = lngWhite
    Me!MargineSalvato.ForeColor = lngRed
    Else
    Me!MargineVolo.BackColor = lngWhite
    Me!MargineVolo.ForeColor = lngRed
    Me!MargineSalvato.BackColor = lngGreen
    Me!MargineSalvato.ForeColor = lngBlack
End If
        Forms!msc_Cstfly.Corpo.Visible = True
End Sub
E detto questo, la colonna MargineVolo è ROSSA, la colonna
MargineSalvato è verde...
Quindi, essendo una form continua, dovrei aprire la query in lettura,
passare record per record, valore x valore e fare il confronto.
Perchè, altrimenti, lui verifica che nel primo record A < B, per cui
tutti i record della colonna A sono rossi, e tutti i record della
colonna B sono verdi.
Cosa dite? Fila o non fila il discorso?
Samantha

 testare quanto da te suggeritto, non è il massimo...
None (rafforzativo di no). Su una form continua non  mi risulta che si 
possa formattare un controllo, a meno di usare le format conditions 
(stanno li per questo), poiche', su quel tipo di form, non abbiamo un 
insieme, o se preferisci "array", di oggetti diversi. Se modifichi gli 
attributi di un controllo questi sono propagati su tutta la colonna.
Ma la roba che hai scritto la avevi gia' testata?
[OT] Che  gli racconto stasera alla mia consorte?
-- 
ac
y-1=x


Io non riesco a riprodurre il problema perchè a me funzia.
Secondo me c'è qualche impostazione che ci sfugge.
Ad esempio hai detto (riporto testualmente):
===================================================
I due campi vengono pescati dalla query che segue. Nella tabella, i
valori sono impostati a numerico con precisione doppia, sebbene quando
io calcolo i valori li salvo in tabella con comando
cdbl(format(valore;0,000) ossia troncandoli. Quindi, x spiegarmi, apro
la tabella, seleziono il valore, questo valore è proprio a 3 cifre.
===================================================
Forse il problema è proprio nella modalita' in cui salvi dati.
-- 
Ciao
Geppo 

 [OT] Che  gli racconto stasera alla mia consorte?
:D Io il mio l'ho portato a cena!!!!
Ciao
Samantha
3824

 :D Io il mio l'ho portato a cena!!!!
Ristorante di prima classe immagino.
E ti ha chiesto cosa avevi fatto durante il giorno?
La cosa che vuoi fare temo non funzionera'. Se cerchi sui messaggi 
vecchi trovi un bel po' di disperati con il problema di formattazione o 
assegnazione di valori su controlli calcolati in maschere di tipo 
"continuo".
-- 
ac
y-1=x

 y-1=x

 
-- 
ac
y-1=x

 che provenga da query o tabella non dovrebbe fare molta differenza.
Concordo pienamente, io sono qui che mi arrovello (-> esiste in
italiano?) la testa per capire cosa accade realmente!!!
Ho tempo fino a mercoledì, x fare test, a tempo perso! Ti terrò
aggiornato.
Buon lavoro
Samantha
3824