Newsgroup: it.comp.appl.access
Titolo: Nome campo insoddisfacente

....alcune volte viene voglia di tirare giu' tutti i martiri e santi del 
calendario (anche qualche beato).
 
Scenario: (acc2003sp3)
1) Tabella collegata (foglio Excel) (as T1)
2) Combobox (as cb1) a "ElencoCampi" con sorgente "select * from T1"
	Perfetto c'e' l'elenco di tutti campi di T1
3) Questa istruzione  x= rs(cb1)
	Orrore: Elemento non presente nell'insieme
 
Perche'?
Perche' il maledetto nome campo ha uno spazio in fondo.
 
Qualche soluzione prima di inventarmi la bicicletta con gli sportelli?	
-- 
 
ac (x=y-1)

 calendario (anche qualche beato).



Nomecampo ha uno spazio in fondo?
  Trim(nomecampo)
E se vuoi ci puoi mettere uno spazio pure davanti.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 calendario (anche qualche beato).





 calendario (anche qualche beato).





 calendario (anche qualche beato).





 -Marco-
Uno di noi due ha problemi con il browser e la connessione, e spara post
col mitragliatore. E non sei tu.


 -Marco-
Uno di noi due ha problemi con il browser e la connessione, e spara post
col mitragliatore. E non sei tu.


 -Marco-
Visto ;-{D
Ma forse non mi sono spiegato.
Il problema e' mettercelo lo spazio non toglierlo.
Sul cbx c'e' scritto "A" mentre il campo si chiama "A " e naturalmente 
non posso sapere a priori se quel nome e' giusto o "doctored".
-- 
ac (x=y-1)


wrote:

Ciao Alessandro.
Scusa ma ... con "x= rs(cb1)" cosa vorresti ottenere???
Popi

Alessandro Cara ha scritto:

Ho ricostruito la situazione su A2K SP3, foglio excel collegato in access
as T1, campi "A", "B ", "C", "D" (B ha lo spazio, gli altri no)
cbx con elenco campi T1
su dopo aggiornamento cbx:
 
Private Sub cbx_AfterUpdate()
Dim Rst As DAO.Recordset
    MsgBox "*" & Me.cbx & "*"
    Set Rst = CurrentDb.OpenRecordset("T1")
    Rst.MoveFirst
    MsgBox Rst.Fields(Me.cbx).Value
End Sub
 
Risultato, quando seleziono B il primo msgbox mostra anche lo spazio, ergo
la cbx lavora correttamente con gli spazi, se ci sono li mette altrimenti
no. Il secondo msgbox mostra correttamente il valore contenuto nel campo
"B " del primo record di T1, senza dare alcun errore.
Il tuo problema dev'essere altrove, non dipendente dallo spazio finale.
 
Io comunque eliminerei (se possibile) gli spazi alla fine dei nomi di
campo già in excel, è una rogna, non si vedono e di conseguenza puoi
dimenticarteli, oltre che obbligarti a racchiudere i nomi tra parentesi
quadre.


 Popi
Il contenuto del campo indicato in cb1 (rs e' un recordset e cb1 
contiene (dovrebbe) il nome di campo)
Tanto per *non* capirci ;-{)
Sto *riscrivendo* la funzione di importa dati con una mia personale 
tabella MSysIMEX e stavo facendo le prove con un incasinatissimo foglio 
excel collegato (con nomi campo tipo questo:DURATA _AUDIT _1  1,5  0,5 
2_E = Excel) e la funzionalita' "Elenco Campi" del cbx mi e' sembrata 
utile per evitarmi la rottura di "zebbedei" di costruirmi la lista dei nomi.
-- 
ac (x=y-1)

 quadre.
Non si puote. Sta roba deve funzionare su un qualsiasi file collegato ed 
i fogli excel vengono generati da laureati in economia che non capiranno 
mai la *economia* dello spazio.
-- 
ac (x=y-1)

 mai la *economia* dello spazio.
 
Preparati a gestire anche i vbcrlf all'interno dei nomi di campo.


 Preparati a gestire anche i vbcrlf all'interno dei nomi di campo.
Spero proprio di no. Mi spiego.
Quando viene collegata la tabella access fa le modifiche che ritiene 
piu' opportune ai nomi di campo (*). Si deve quindi partire dal 
presupposto che quei nomi sono "Access compatibili" e comunque lo lascio 
decidere a Lui (i.e. "Elenco Campi"). Il caso degli spazi finali e' un 
caso molto particolare e poteva intervenire il troncamento dovuto alla 
scrittura in tabella.
(*) sulla tabella che uso access ha, di fatto, apportato numerose 
modifiche ai nomi campo sostituendo i caratteri non ammissibili con il 
diesis (#) e assegnato nomi di default dove non c'era l'etichetta.
P.S. (dovuta a "pensiero profondo" mentre scrivevo il post)
OK!
Alura, non so perche' percome e perquando ma sulla beforeupdate del 
controllo cbx esiste questa situazione
.Text = "NUOVA PROGRAMMAZIONE MENSILE DA SETTEMBRE 2009 "
.Value = "NUOVA PROGRAMMAZIONE MENSILE DA SETTEMBRE 2009"
si "incassa" se tento di fare la modifica in diretta sul controllo 
(i.e. inserimento delle quadre utilizzando il .text o .value in 
beforeupdate)
onde!Bicicletta con gli sportelli:
Private Sub F_Source_BeforeUpdate(Cancel As Integer)
tWork = IIf("" & F_Source <> "", "[" & F_Source.Text & "]", "")
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
F_Source = tWork
End Sub
twork e' un txtcontrol "fake" che ho messo li solo per la bisogna.
Sono su form continua con tutte le controindicazioni per la gestione di 
controlli non associati.
Ora passo il tutto alla prova "finestra"
-- 
ac (x=y-1)


wrote:

Ah, ho capito: parli dei cabasisi che mi son dovuto zabaionare io ...
Ho un team di ingenieri [1] che, tra i vari compiti che hanno, devono
caricare in fogli excel che ho [2] appositamente strutturato le
configurazioni di apparati complessi.
Tali file poi vengono dati in pasto ad una mia procedura che avrebbe
dovuto:
a) collegare il file
b) accodare i dati con una banale query d'inserimento
c) scollegare il file
Mi son dovuto inventare una routine che:
a) apre il file excel e lo salva con nome come TXT [3]
b) crea lo schema.ini ed importa il file TXT in una tabella temporanea
c) verifica che tutti i campi della temporanea siano stati abbinati ad
una tabella/campo presente nel db [4]
d) compone on-the-fly ed esegue le query di accodamento ed
aggiornamento [5]
e) pulisci tutto e tira lo sciacquone
Ovviamente con una bella transazione a pararmi da guai anche più
grossi.
Alla fine, il tutto gira su una tabella di trasposizione in cui (come
dice anche Marco) mi conservo il nome del campo xls di partenza tra
parentesi quadre ed un nome di tabella e nome di campo di arrivo.
Chiaro: funziona tutto (AXP) per un po', poi arriva A07 e scopro che
non funziona più nulla ... perché se nel campo di partenza avevo messo
una "Left$([Costr];3)" con A07 devo togliere il "$" ...
Fammi sapere, eventualmente, dove mandarti uno snippet ;)
Popi
[1] No, purtroppo non è un errore.
[2] Avevo (sadly).
[3] Perché lettere e numeri nella stessa colonna danno un poco
fastidio.
[4] A metà del lavoro "Houston, abbiamo un problema, ci vogliono anche
questi dati".
[5] "Houston, ci serve il tasso di guasto, non il MTBF".