Newsgroup: it.comp.appl.access
Titolo: Apici e Bookmark

Ciao a tutti, non molto tempo fa credevo di aver risolto il problema
della cancellazione di più items selezionati in una casella di
riepilogo, grazie al vostro straordinario aiuto, cioè praticamente
avendomi dettato il codice,sul quale naturalmente ho studiato ed ho
capito molte cose.
Poi un giorno mi capita di selezionare un articolo, tra le migliaia
disponibili, decido di cancellarlo e....niente
Ho scoperto il perchè,sempre grazie al vostro codice,qui di seguito
riporto la parte di codice che costruisce la stringa
Dim strSQL As String
Dim varItem As Variant
strSQL = "DELETE Articolo FROM TabellaAppoggio " & _
"WHERE Articolo IN ("
If Me.PREVENTIVO.ItemsSelected.Count = 0 Then Exit Sub
For Each varItem In Me.PREVENTIVO.ItemsSelected
    strSQL = strSQL & "'" & _
    Me.PREVENTIVO.Column(0, varItem) & _
    "', "
Next varItem
strSQL = Left$(strSQL, Len(strSQL) - 2) & ")"
Il motivo della mancata cancellazione sta nel fatto che all'interno
della stringa sono presenti altri apici,esempio:
 DELETE Articolo FROM TabellaAppoggio WHERE Articolo IN ('MODEM FAX
SLOT''AMR'' 56K INT.per ASUS A7V')
E'possibile una soluzione oppure conviene usare un altro sistema?
Si può esporre più di un quesito per volta oppure no?
Va bè,se non posso non mi rispondete ed io poi farò un post per
quest'altra domanda.
Vorrei sfruttare l'evento NotInList di una casella combinata,per
inserire il nuovo dato.Per quanto riguarda l'aggiornamento non ci sono
stati problemi,ho aperto il recordset(adCmdTableDirect) e assegnato il
NewData al giusto campo,il problema è che subito dopo vorrei aprire la
maschera(PopUp) relativa per finire di inserire gli altri
dati,indirizzo,città ecc ecc....
Ciao a tutti e grazie.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:9e5bd950f5b47cd35d...@mygate.mailgate.org...

Pova a sostituire:
For Each varItem In Me.PREVENTIVO.ItemsSelected
    strSQL = strSQL & "'" & _
    Me.PREVENTIVO.Column(0, varItem) & _
    "', "
Next varItem
Con:
For Each varItem In Me.PREVENTIVO.ItemsSelected
    strSQL = strSQL & Chr$(34)  & _
    Me.PREVENTIVO.Column(0, varItem) & _
    Chr$(34) & ", "
Next varItem
Dovrebbe funzionare.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
Grazie per avermi risposto, ed infatti per quella stringa che avevo
postato
ha funzionato, ma per questa no
DELETE Articolo FROM TabellaAppoggio WHERE Articolo IN ("MON. LCD SONY
SDM-M51 15.1" MM").
Mi sono documentato sulla funzione & Chr$(34) & ,divide la stringa e 
inserisce un carattere che rappresenti le virgolette ogni qualvolta
ce ne sia bisogno(vi prego correggetemi se sbaglio),e adesso la sparo
grossa
e se si inserisce doppi apici all'inzio e alla fine della stringa
 (""........"")che succede?
Per l'altro problema ho trovato la soluzione, farò comunque
un altro post domani per mostrare la mia soluzione.
Ciao a tutti.


 ha scritto nel messaggio
news:1b0f920daa08fd2167...@mygate.mailgate.org...

Mi sembra molto strano: non saprei che dirti.

> Mi sembra molto strano: non saprei che dirti.
(:-((aaaaaarrgggghhh, scusa sicuramente non mi sono spiegato bene..
-<| <-----cappio
Il mio utente scarica i listini da internet, uno č una tabella in access
l'altro e un file creato con notepad, con quest'ultimo ho usato la
procedura guidata
per trasformarlo in una tabella di access.
Con gli articoli scielti dal listino che non ha avuto bisogno della
conversione
non ci sono problemi li cancella regolarmente,qui di seguito un esempio
di
stringa prelevata direttamente dalla tabella
MONITOR 17'' TFT LCD LM700 AOC
questa invece la stringa che esce dopo il passaggio nel codice
("MONITOR 17'' TFT LCD LM700 AOC")
Con gli articoli scielti dalla tabella derivata dal file di txt i
problemi
si sprecano, secondo me perchč a differenza del precedente esempio gli
apici
non sono due singoli divisi da uno spazio ma i classici doppi apici,di
seguito
un esempio di stringa prelevata direttamente dalla tabella
MON. COMPAQ 17" FS740
e dopo il codice
("MON. COMPAQ 17" FS740")
Spero di essere stato piů chiaro.
Ciao e grazie.


 -<| <-----cappio
[CUT]
Sicuramente, come tu hai intuito,  il problema nascce dalla presenza delle
virgolette inserite nel valore del campo Articolo.
Non sei tu che non sei stato chiaro, sono io che non ho da suggerirti una
sintassi giusta per risolvere il tuo problema.
Quindi ci sono tre possibilità:
1) Qualcun altro frequentatore ti indica una sintassi giusta.
2) Normalizzi una-tantum la tabella TabellaAppoggio sostituendo tutti valori
virgolette contenuti nel campo Articolo con dei doppi apici.
3) Inserisci nella TabellaAppoggio, come chiave primaria, un campo
contatore; a questo punto la WHERE della query di eliminazioni la basi sul
campo contatore (che non contiene né virgolette né doppi apici :-) ) dei
record selezionati nella casella di riepilogo.
Se ti serve una mano per risolvere i punti 2) e 3), rifatti vivo.


Grazie Roberto.
Ciao a tutti.
