Es.: PARAMETERS AliquoteIva.Esenzione Text;
SELECT AliquoteIva.Esenzione INTO TabEse
FROM AliquoteIva;
Quando la eseguo, mi viene richiesto il parametro "esenzione"
Come posso fare?
Grazie a tutti
--
Nina
Ciao!
AFAIK il tipo di campo da creare viene determinato nel momento in cui
viene eseguita la SELECT, ed il SQL (di Access?) non mette a
disposizione "manipolatori" di tipo idonei alla bisogna.
Usare una funzione VBA propria non risolve comunque dato che il tipo
di dati memo non esiste, e restituire una string ci riporta al punto
di partenza :(
Quindi, l'unica soluzione che mi viene in mente è (ma l'avrai già
pensata tu, vero?):
SELECT TblDati.SarebbeUnCampoMemo INTO NuovaTbl FROM TblDati WHERE
FALSE;
ALTER TABLE NuovaTbl ALTER COLUMN SarebbeUnCampoMemo LONGTEXT;
INSERT INTO NuovaTbl SELECT * FROM TblDati;
HTH
Popi
>>Ciao!
>>AFAIK il tipo di campo da creare viene determinato nel momento in cui
>>viene eseguita la SELECT, ed il SQL (di Access?) non mette a
>>disposizione "manipolatori" di tipo idonei alla bisogna.
>>Usare una funzione VBA propria non risolve comunque dato che il tipo
>>di dati memo non esiste, e restituire una string ci riporta al punto
>>di partenza :(
>>Quindi, l'unica soluzione che mi viene in mente è (ma l'avrai già
>>pensata tu, vero?):
Si, volevo sapere se c'è un modo diretto per risolvere il problema, cioè se
fosse possibile farlo direttamente nell' SQL "INSERT INTO". Grazie comunque
:)
>>SELECT TblDati.SarebbeUnCampoMemo INTO NuovaTbl FROM TblDati WHERE
>>FALSE;
>>ALTER TABLE NuovaTbl ALTER COLUMN SarebbeUnCampoMemo LONGTEXT;
>>INSERT INTO NuovaTbl SELECT * FROM TblDati;
>>HTH
>>Popi
Ciao
Nina
Il troncamento e cambio del tipo non è normale.
Se il campo è definito come tipo memo nella tabella AliquoteIva
dovrebb'essere anche un memo nella nuova tabella e prendere
tutti i dati. Certo devi togliere il parametro dalla query. Cioè usare:
SELECT AliquoteIva.Esenzione INTO TabEse
FROM AliquoteIva;
Se con questa stringa SQL viene troncato di nuovo:
"AliquoteIva" è una tabella di Access/JET o di un sistema diverso?
Quale versione di Access usi?
Il mdb o accdb è nel formato di quale versione di Access?
--
Ciao
Karl
*********
Access FAQ: www.donkarl.com/it
Guten Tag Karl :)
Premessa: test fatto con mdb in AXP.
Se ho una Tabella1 (Campo1 Memo, Campo2 Testo, Campo3 Numerico) e
faccio una
SELECT Tabella1.Campo1, Tabella1.Campo2, Tabella1.Campo3 INTO Tabella2
FROM Tabella1;
ottengo una Tabella2 con struttura identica all'originale.
Se la query fosse
SELECT Tabella1.Campo1 AS NuovoMemo, Tabella1.Campo2, Tabella1.Campo3
INTO Tabella2 FROM Tabella1;
la struttura di Tabella2 è ancora identica all'originale.
Se, invece, eseguo
SELECT [Tabella1].[Campo1] & "" AS NuovoMemo, Tabella1.Campo2,
Tabella1.Campo3 INTO Tabella2 FROM Tabella1;
il Campo1 diventa Testo (255).
E questo anche se il Campo1 originale contiene dati oltre i 255
caratteri, ma potrebbe starci visto che lo stiamo "manipolando" con
una stringa.
Solo che il comportamento è identico facendo una
SELECT [Tabella1].[Campo1] & [Tabella1].[Campo1] AS NuovoMemo,
Tabella1.Campo2, Tabella1.Campo3 INTO Tabella2 FROM Tabella1;
La domanda allora diventa: svolgere una qualsiasi operazione su un
campo memo lo converte da LongText a Text?
Nina: stai semplicemente accodando dati (come nell'esempio che hai
dato) o li stai manipolando in qualche modo?
HTH
Popi
Sì, perché in questi casi Access "ottimizza" ad un Text.
Per questo ho chiesto esplicitamente con la stringa senza operazione. ;-)
*MUMBLE* ... "pessimizza" forse ci starebbe meglio, ma preferisco
pensare che le argentee teste d'uovo in MS hanno avuto le loro buone
ragioni :)
> Per questo ho chiesto esplicitamente con la stringa senza operazione. ;-)
Ah ... non l'avevo intesa anche in quel senso, pensavo ti riferissi
solo alla questione PARAMETERS :)
Ciao!
Popi
Ciao,
sì, scusatemi, qualche precisazione è d'obbligo.
La tabella AliquoteIva è una query, in cui definisco il campo esenzione
concatendando due campi che nella tabella d'origine (in db MySQL) sono di
tipo TEXT.
> dovrebb'essere anche un memo nella nuova tabella e prendere
> tutti i dati. Certo devi togliere il parametro dalla query.
Il parametro l'ho aggiunto, perchè in un post veniva indicato come soluzione
per l'aggiunta (in questo esempio si trattava di nuovi campi) di campi memo
ad un istruzione INSERT INTO.
> Cioè usare:
>
> SELECT AliquoteIva.Esenzione INTO TabEse
> FROM AliquoteIva;
>
> Se con questa stringa SQL viene troncato di nuovo:
> "AliquoteIva" è una tabella di Access/JET o di un sistema diverso?
le tabelle d'origine sono tabelle MYSQL collegate tramite ODBC . Nella
Tabella MySQL i campi d'origine della colonna calcolata "esenzione" sono di
tipo TEXT.
> Quale versione di Access usi?
> Il mdb o accdb è nel formato di quale versione di Access?
Uso come front-end un mdb creato Access 2002 nel formato predefinito 2000.
Grazie
Ciao,
Nina
Non ho bevuto :)
ovviamente intendevo dire che "AliquoteIva presente nella clausola FROM non
è una tabella ma è una query"
Ciao,
Nina
>
>> dovrebb'essere anche un memo nella nuova tabella e prendere
>> tutti i dati. Certo devi togliere il parametro dalla query.
>
CUT
>
>