Newsgroup: it.comp.appl.access
Titolo: Query di creazione tabella che funziona solo se avviata manualmente

Ciao a tutti
Ho un DB access 2007 che esporta dei dati in file csv per una
successiva acquisizione in tabelle di phpmyadmin.
In questo Db ho una query di crezione tabella che tra i vari campi
trasferiti in tabella ne ha 5 numerici con decimali.
ho impostato su questi campi la funzioni del tipo
replace(cstr([prezzo]);",";".") in modo che vengano convertiti in
testo e che la virgola venga sostituita dal punto.
Ora, eseguendo la query manualmente funziona alla perfezione,
avviandola invece da codice VBA i campi vengono ignorati e la tabella
risultante dà sui 5 campi valore null...
 
Sapete spiegarmi questo mistero ed eventualmente illuminarmi su come
risolvere??
 
grazie 1000
 
Nicola

 risultante dà sui 5 campi valore null...
 
Ciao!
 
Prova a postare il sql completo ed i comandi che usi per eseguirla.
 
HTH
Popi


Ciao
 
il codice (un pò lunghino) è questo:
 
SELECT [articoli2].[ditta] & [articoli2].[articolo] & [articoli2].
[ean] AS ID, articoli2.ean, articoli1.Articolo, IIf(IsNull([datid].
[categoria]),[datix].[categoria],[datid].[categoria]) AS Categoria,
IIf(IsNull([datid].[sottocategoria]),[datix].[sottocategoria],[datid].
[sottocategoria]) AS SottoCategoria, articoli1.descrizione AS
Descrizione, articoli1.UM, articoli1.Imballo, IIf([articoli1].
[sottimballo]="",1,[articoli1].[sottimballo]) AS Sottimballo,
Replace(CStr([articoli1].[lis2]),",",".") AS Lis2,
Replace(CStr([articoli1].[lis4]),",",".") AS lis4,
Replace(CStr([articoli1].[lis7]),",",".") AS lis7,
CStr(IIf(IsNull([estatt]),0,IIf([estatt]-[qtaipgcli]<0,0,[estatt]-
[qtaipgcli]))) AS Disponibile, CStr(IIf(IsNull([estatt]),
0,IIf([estatt]-[qtaipgcli]+[qtaordfor]<0,0,[estatt]-[qtaipgcli]+
[qtaordfor]))) AS Ordinabile, articoli1.DataCre, IIf(IsNull([datid].
[percorso]),[datix].[percorso],[datid].[percorso]) AS Percorso,
Replace(CStr([articoli1].[peso]),",",".") AS peso,
Replace(CStr([articoli1].[volume]),",",".") AS volume,
IIf([Ordinabile]>[Disponibile],"1","0") AS Arriva INTO ARTICOLIWEB
FROM ((Ditte INNER JOIN ((articoli1 LEFT JOIN articoli3 ON
(articoli1.Articolo = articoli3.Articolo) AND (articoli1.Ditta =
articoli3.Ditta)) INNER JOIN articoli2 ON (articoli1.Ditta =
articoli2.Ditta) AND (articoli1.Articolo = articoli2.Articolo)) ON
(Ditte.CodCli = articoli2.Fornitore) AND (Ditte.Ditta =
articoli2.Ditta)) LEFT JOIN datid ON articoli2.nomefile =
datid.codice) LEFT JOIN datix ON articoli2.nomefile = datix.codice
WHERE (((IIf(IsNull([datid].[percorso]),[datix].[percorso],[datid].
[percorso])) Is Not Null And (IIf(IsNull([datid].[percorso]),[datix].
[percorso],[datid].[percorso])) Not Like "*esaurit*") AND
((articoli1.Annullato) Not Like "C") AND ((IIf([descrizione] Like
"*@*" And [estatt]-[qtaipgcli]+[qtaordfor]<=0,"togli",""))="")) OR
(((IIf(IsNull([datid].[percorso]),[datix].[percorso],[datid].
[percorso])) Is Not Null And (IIf(IsNull([datid].[percorso]),[datix].
[percorso],[datid].[percorso])) Not Like "*esaurit*") AND
((articoli1.Annullato) Is Null) AND ((IIf([descrizione] Like "*@*" And
[estatt]-[qtaipgcli]+[qtaordfor]<=0,"togli",""))=""));
 
 
Nicola

 SELECT [articoli2].[ditta] & [articoli2].[articolo] & [articoli2].
 
Ciao!
 
Con che comandi la esegui da vba?
 
Popi


la tabella la creo con:
DoCmd.OpenQuery "ARTMAGWEB"
mi viene generata la tabella ARTICOLI WEB
e la esporto con
DoCmd.TransferText acExportDelim, "ESPORTA_ARTICOLI2", "ARTMAGWEB", "\
\serverftp\agenti\aggiornamenti\www\admin\articoli.csv", False
 
dove la specifica ESPORTA_ARTICOLI2 indica che il separatore di campo
deve essere la virgola e il separatore decimale il punto.
 
Nicola