Newsgroup: it.comp.appl.access
Titolo: Funzione Mid

Dovrei sostituire due caratteri di una striga utilizzando la funzione Mid.
Con una query di aggiornamento
Es: Comune in Milano      far risultare Comune di Milano
Ho provato con Visual e funziona perfettamente non riesco a trasformarlo in
SQL
Dim strfrase As String
Dim intmsg As String
strfrase = "Comune in Milano"
Mid(strfrase, 8, 2) = "di"
intmsg = MsgBox(strfrase)
End Sub
Grazie per ogni Benemerita

 ha scritto nel messaggio
news:TY2r7.22926$Lp6.8...@news.infostrada.it...

Ho provato a riprodurre il caso.
Ho costruito una funzione che ho chiamato "SostituisciStringa" (potrebbe
essere la tua funzione VBA) che mi restituisce una stringa con le eventuali
sostituzioni e richiede una stringa come input.
Alla fine con una query di aggiornamento ho risolto il problema mettendo la
funzione nella riga "Aggiorna a".
Per esempio:
UPDATE Fornitori SET Fornitori.[RagioneSociale/Nome] =
SostiutisciStringa([Fornitori].[RagioneSociale/Nome])
WHERE (((Fornitori.IDFornitore)=1))
WITH OWNERACCESS OPTION;
La clausola WHERE puoi ometterla.
Può andar bene? Fammi sapere.
Ciao, Carlo

 ha scritto nel messaggio
news:TY2r7.22926$Lp6.8...@news.infostrada.it...

Per essere più comprensibile e perchè la funzione potrebbe servire ad altri,
riscrivo un esempio completo.
Questa una possibile funzione che sostituisce una stringa con un'altra:
Public Function SostiutisciStringa(MiaStringa As String, StrDaSostituire As
String, StrSostituita As String) As String
Dim pos As Integer
pos = InStr(1, MiaStringa, StrDaSostituire)
If pos > 0 Then
SostiutisciStringa = Mid(MiaStringa, 1, pos - 1)
SostiutisciStringa = SostiutisciStringa & StrSostituita & Mid(MiaStringa,
pos + Len(StrDaSostituire), Len(MiaStringa))
Else
SostiutisciStringa = MiaStringa
End If
End Function
Questa la query di aggiornamento o meglio l'istruzione SQL che richiama la
funzione:
UPDATE Fornitori SET Fornitori.[RagioneSociale/Nome] =
SostiutisciStringa([Fornitori].[RagioneSociale/Nome],"DISCOUNT","Grande
Magazzino")
WITH OWNERACCESS OPTION;
L'SQL sostituisce "DISCOUNT" con "Grande Magazzino".
By,by
Carlo

Flavio Grazioli ha scritto:

UPDATE Tabella SET Campo = Left(Campo,7) & "di" & Mid(Campo,10)
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 ha scritto nel messaggio
news:TY2r7.22926$Lp6.8...@news.infostrada.it...

Oltre a quello che ti hanno detto Carlo e Karl,  se vuoi generalizzare il
problema, nella riga Aggiorna a: della query di aggiornamento puoi usare la
funzione illustrata da lbo nel Sito Comune (link qui sotto), Sezione
General, nella FAQ intitolata "Sostituire una o piu' sottostringhe
all'interno di una stringa".
lbo è latitante, ma le sue funzioni funzionano! :-))))
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 End Function
Scusa Carlo, ma perche' tutti questi giri? L'uso che Flavio fa
dell'istruzione Mid e' ottima ed efficiente.
Basta che lui usi la sua stessa funzione nella tua query.
Ciao
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente