Newsgroup: it.comp.appl.access
Titolo: sostituire stringhe..aiuto

Ciao al NG!
Ho un problema che spero possiate risolvermi:
Ho un campo "cartoni" contenente dei dati numerici che in alcuni record
contiene una scritta del genere: INT((V/8), che mi impedisce di fare delle
operazioni.
Per cui avevo pensato di sostituire con una query tale scritta con i dati di
un'altro campo.
Avrei bisogno di fare una cosa del genere:
se il campo "cartoni" contiene la stringa che incomincia per " INT*"
sostituisci questa stringa con i dati del campo "pippo"!
Potete aiutarmi?
Ciao e Grazie

 ha scritto nel messaggio
news:_g2s7.8022$jT5.3...@news.infostrada.it...

Si chiama Query di Aggiornamento....
Inserisci il Seguente codice nella Visualizzazione SQL di una Qry Vuota
aggiungendo il nome della Tabella:
UPDATE NomeTabella SET Cartoni =
iIf(Left([Cartoni],4)="INT*","Pippo";[Cartoni]);
Lanciala.......!
@Alex.

 Lanciala.......!
Ciao!
Non mi interessa creare una nuova tabella, mi necessità di vedere il
risulatato nell'esecuzione di una query!
Nella query utilizzo 2 tabelle, una che contiene il campo "cartoni", e
l'altra che contiene il campo "pippo" , e con un espressione da immettere
nel campo cartoni dirgli di sostituire i la stringa che dentro questo campo
hanno il nome di "INT*" con quella presente nel campo pippo dell'altra
tabella.
Ciao e grazie

 ha scritto nel messaggio
news:ozes7.4253$_42.1...@news.infostrada.it...

Se la prima tabella si chiama Tabella1 e se ha una struttura simile:
ID
Cartoni     Testo
ecc. ecc.
Se la prima tabella si chiama Tabella1 e se ha una struttura simile:
ID
Cartoni     Testo
ecc. ecc.
Se il join tra le tabelle può essere fatto sui campi ID.
Prova a creare una query con il seguente codice SQL:
SELECT IIf(Left([Cartoni],3)="INT",[Pippo],[Cartoni]) AS Pluto
FROM Tabella1 LEFT JOIN Tabella2 ON Tabella1.ID = Tabella2.ID;
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Scusami: colpa del copia incolla.
Avrei voluto scrivere:
Se la prima tabella si chiama Tabella1 e se ha una struttura simile:
ID
Cartoni     Testo
ecc. ecc.
Se la seconda tabella si chiama Tabella2 e se ha una struttura simile:
ID
Pippo      Testo
ecc. ecc.
Se il join tra le tabelle puņ essere fatto sui campi ID.


 Roberto
...Azz.., complimenti per l'intuizione Roberto, sfiori la Veggenza....!
Ciao @ALEX.
-- 
Posted from  [146.133.1.30] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 FROM Tabella1 LEFT JOIN Tabella2 ON Tabella1.ID = Tabella2.ID;
Ciao!
Si il join può essere fatto tra i campi ID!
Domani provo eo ti faccio sapere!
Ciao e Grazie a tutti.

 FROM Tabella1 LEFT JOIN Tabella2 ON Tabella1.ID = Tabella2.ID;
Ciao e Scusa la mia testardaggine!
Così non riesco mi da un errore di sintassi non corretta!
Siccome la query comprende + tabelle preferirei creare un campo all'interno
della query invece di una nuova tabella.
Per non fare confusione facciamo così:
"TP_DIBA_PRIMARIA" = tabella che contiene il campo "CARTONI" il cui interno
contiene le stringhe "INT*"
"1_Anagr_Art"= tabella che contiene il campo "NPZ_ART_CONF" al cui interno
contiene i numeri per la sostituzione.
La query contiene già le 2 tabelle con il join tra i campi ID
Vorrei creare un'altro campo che dica: Visualizza il campo "CARTONI" della
tabella "TP_DIBA_PRIMARIA"  , ma se all'interno vi è un record che contiene
la stringa "INT*" sostituiscilo con il campo "NPZ_ART_CONF" della tabella
"1_Anagr_Art".
Grazie

 Grazie


 1_Anagr_Art.ID;
Ho eseguitoSQL di cui sopra......la query viene eseguita correttamente, ma
il campo pluto mi restituisce i soliti risultati del campo
TP_DIBA_PRIMARIA.Cartoni.
Il campo pluto invece dovrebbe estrarre tutti i numeri presenti nel campo
TP_DIBA_PRIMARIA.Cartoni., e i numeri nel campo 1_Anagr_Art.NPZ_ART_CONF,
qualora il campo TP_DIBA_PRIMARIA.Cartoni abbia dei valori che incominciano
per *INT
qui stotto la mia SQL:
SELECT TP_DIBA_PRIMARIA.*,
IIf(Left([TP_DIBA_PRIMARIA].[CARTONI],4)="INT*",[1_Anagr_art].[NPZ_ART_CONF]
,[TP_DIBA_PRIMARIA].[CARTONI]) AS Pluto
FROM TP_DIBA_PRIMARIA LEFT JOIN 1_Anagr_art ON TP_DIBA_PRIMARIA.CKY_ART_DBPR
= [1_Anagr_art].CKY_ART;
Grazie


E' evidente che la la condizione
Left([TP_DIBA_PRIMARIA].[CARTONI],4)="INT*"
risulta sempre falsa e questo a causa del secondo termine di paragone che
presupponiamo sia uguale a "INT*".
Ma che caspiterina c'è nei primi caratteri di 'sto campo CARTONI: questa
volta addirittura dici che c'è *INT (e questa è nuova).
Come esempio, postaci il valore COMPLETO del campo CARTONI nel caso in cui
Pluto debba assumere il valore del campo [1_Anagr_art].[NPZ_ART_CONF].


 Pluto debba assumere il valore del campo [1_Anagr_art].[NPZ_ART_CONF].
alcuni valori del campo cartoni:
INT((V/9)*9+0,999)
INT((V/8)*8+0,999)
INT((V/36)*36+0,999)
INT((V/6)*6+0,999)
Visto che i valori cambiano solamente dopo il valore INT  come criterio
bisogna prendere quest'ultimo!
Questo campo è creato dal gestionale che per le sue routine a volte a
bisogno di questo valore,ed a volte inserisce direttamente il numero di
cartoni.
Ciao e Grazie per l'interessamento!

 ha scritto nel messaggio
news:YyYs7.5331$MM2.7...@news.infostrada.it...

E no.
INT è una funzione, e quindi come valore del campo CARTONI, che a questo
punto è un campo numerico, ci troverai il risultato della funzione INT (che
sarà un numero) e non ci troverai INT((V/9)*9+0,999).
Quidi dovresti conoscere il valore del numero restituito dalla funzione INT
per condizionere la query, in caso contrario non hai soluzione al tuo
problema.


 problema.
Il valore del numero lo riconosco nel campo [1_Anagr_art].[NPZ_ART_CONF] è
per questo che volevo sostituirlo!!
Ciao

 ha scritto nel messaggio
news:wa0u7.23599$C15.2...@news.infostrada.it...

Prova con una query che ha il seguente codice SQL:
SELECT TP_DIBA_PRIMARIA.*, IIf(Left(TP_DIBA_PRIMARIA.Cartoni,3)="INT",
1_Anagr_Art.NPZ_ART_CONF, TP_DIBA_PRIMARIA.Cartoni) AS Pluto
FROM TP_DIBA_PRIMARIA LEFT JOIN 1_Anagr_Art ON 
TP_DIBA_PRIMARIA.ID
 =
1_Anagr_Art.ID;
Sempre che io abbia capito bene il tuo problema, ho provato in un mio esmpio
questa query ed a me funziona.


 1_Anagr_Art.ID;
Siiiiii Funzionaaaaaa!!
Ciao e Grazie tanto per avermi dedicato del tempo!
Complimenti per la tua competenza!......6 un Drago ;)
Ciao