Caratteri speciali in una stringa

Anonimo
2013-05-24T07:37:38+00:00

Buongiorno a tutti,

Nel mio programma devo fare una select su una database dove cerco un campo uguale ad una certa stringa.

Questa stringa però all'interno può contenere qualsiasi carattere speciale. In pratica ho un inserimento in cui l'utente cerca su una combobox popolata da database il nome di un cliente. Nel programma devo fare una select in cui seleziono l'id del cliente in base al nome che ha scelto l'utente.

Volevo sapere c'è una funzione in VBA simile alla funzione mysql_real_escape_string in php?

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-05-28T16:10:01+00:00

Ciao RiccardoFavaretto,

se il campo è numerico non accetta caratteri non numerici :-), probabilmente ti stai riferendo a un campo di tipo Testo utilizzato per memorizzare i numeri.

Non esiste una funzione già fatta, devi fartela tu, esempio:

Public Function ufn_SoloNumeri(ByVal Nr As Variant) As Variant

    If IsNull(Nr) Then

       ufn_SoloNumeri = Null

       Exit Function

    End If

    Dim Validi As String

    Dim Risultato As String

    Dim i As Integer

    Validi = "0123456789"

    Nr = "" & Nr

    For i = 1 To Len(Nr)

       If InStr(Validi, Mid(Nr, i, 1)) <> 0 Then

          Risultato = Risultato & Mid(Nr, i, 1)

       End If

    Next

    ufn_SoloNumeri = Risultato

End Function

Modifica la stringa Validi a seconda se vuoi far accettare la virgola il segno + o - ecc

p.s.

se il suggerimento precedente ha risolto segnalo come risposta così agevoliamo il lavoro dei moderatori

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-05-25T08:14:02+00:00

Grazie mille, ma non devo popolare una combobox con caratteri speciali, io l'ho già popolata, e funziona, il problema dopo che ho preso il valore selezionato dall'utente nella combobox, con quel valore li devo fare una select, però quel valore può contenere qualsiasi carattere speciale. Es

sql = "SELECT MBAN_ID FROM VW_CLIENTI_FORNITORI WHERE MBAN_RagSoc='" & me.combobox.value & "'"

Ecco questo è più o meno il codice

Ciao  RiccardoFavaretto,

l'unico carattere speciale che potrebbe generare errore è il delimitatore di testo, per evitare l'errore bisogna raddoppiare il carattere, se esiste nella stringa, ad esempio con la funzione Replace.

sql = "SELECT MBAN_ID FROM VW_CLIENTI_FORNITORI WHERE MBAN_RagSoc='" & Replace(me.combobox.value,"'","''") & "'"

o se preferisci

sql = "SELECT MBAN_ID FROM VW_CLIENTI_FORNITORI WHERE MBAN_RagSoc='" & Replace(me.combobox.value,Chr(39),Chr(39)+Chr(39)) & "'"

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-05-27T07:33:59+00:00

    Grazie mille giorgio, senti volevo fare un'altra domanda analoga, esiste una funzione che mi permetta di togliere caratteri che non isano numerici da un campo numerico?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-05-24T08:19:11+00:00

    Grazie mille, ma non devo popolare una combobox con caratteri speciali, io l'ho già popolata, e funziona, il problema dopo che ho preso il valore selezionato dall'utente nella combobox, con quel valore li devo fare una select, però quel valore può contenere qualsiasi carattere speciale. Es

    sql = "SELECT MBAN_ID FROM VW_CLIENTI_FORNITORI WHERE MBAN_RagSoc='" & me.combobox.value & "'"

    Ecco questo è più o meno il codice

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-05-24T08:04:36+00:00

    ciao 

    non conosco il codice php, ma se ho capito bene in base a dei caratteri digitati in una combo

    vorresti visualizzare i nomi dei clienti che contengono quei caratteri.

    se usi una connessione ado puoi usare questo codice

    Aggiornare una list box durante la digitazione

    Private Sub MyTextbox_Change()

    Dim CaratteriDigitati As String

    CaratteriDigitati = Nz(Me!MyTextbox.Text, "")

    Me!MyListbox.RowSource = "SELECT nomeCampo FROM nomeTabella " & _

    "WHERE nomeCampo LIKE '" & "*" & cstr( CaratteriDigitati) & "*" & "'

    End Sub

    Fonte sito comune 3.7

    http://it.comp.appl.access.narkive.com/agRZtJLM/sitocomune-3-7-aggiornare-una-listbox-durante-la-digitazione-del-filtro

    Se usi una connessione adodb devi sostituire * con %

    "WHERE nomeCampo LIKE '" & "%" & CStr(CaratteriDigitati ) & "%" & "'

    La risposta è stata utile?

    0 commenti Nessun commento