Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    [VB6]: Accenti non riconosciuti

    Ciao ragazzi,
    il messaggio è un po' confuso ma spieghevole velocemente, io utilizzo questo codice per estrapolare i dati da una tabella.mdb nelle textbox tramite una List1:

    Dim rst1 As Recordset, DB1 As Database

    Set DB1 = OpenDatabase("C:\...\DB.mdb")
    Set rst1 = DB1.OpenRecordset("SELECT * FROM DB_AZIENDE where RAGIONESOCIALE ='" & List1.Text & "'")
    Do While Not rst1.EOF

    txt_Nome.Text = rst1!RAGIONESOCIALE
    txt_Indirizzo.Text = rst1!INDIRIZZO
    txt_Citta.Text = rst1!CITTA

    rst1.MoveNext
    Loop
    rst1.Close
    DB1.Close

    e fin qui tutto Ok...ma quando si trova un accento nel rst1!RAGIONESOCIALE mi va tutto in pallone, l'errore è:

    Errore di run-time '3075'
    Errore di sintassi nella stringa nell'espressione della query
    'RAGIONESOCIALE=' -il record richiesto-

    Mi sapreste aiutare, perchè io non so' assolutamente cosa sia!
    Grazie, vrclaudio

    Buonanotte a tutti dato che sono le 01.00 di notte...

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    E' il classico problema degli apici (l'accento è un'altra cosa).

    I parametri stringa nelle query vanno sempre indicati raddoppiando gli apici, perchè l'apice nel linguaggio SQL è il delimitatore di stringa, per cui quando la stringa contiene un'apice, come ad esempio nei cognomi DALL'OLIO, SQL va in pallone perchè è come se tu scrivessi:

    SELECT * FROM tabella WHERE cognome=' DALL'OLIO
    quindi la parte OLIO per SQL non viene considerata parte della stringa perchè fuori dalla stringa e generare un'errore, logicamente.

    Esempio come fare:

    codice:
    Dim sRagSoc As String
    sRagSoc = Replace(List1.Text,"'","''")
    Set rst1 = DB1.OpenRecordset("SELECT * FROM DB_AZIENDE where RAGIONESOCIALE ='" & sRagSoc & "'")
    Se tu usassi ADO potresti sfruttare i relativi Parametri, il che equivale a scordarsi di tutti i problemi di formattazione dei parametri (apici, cancelletti, formati, ecc.). Leggi l'articolo, se vuoi:
    ADO, Parametri ed affini
    http://nuke.vbcorner.net/Articoli/VB...5/Default.aspx

    Purtroppo stai usando ancora il preistorico DAO quindi dovrai sempre formattarti le stringhe 'a mano' ogni volta.

    Ti consiglio caldamente di studiarti BENE una qualsiasi guida SQL, queste cose sono spiegate per bene perchè sono la base del linguaggio SQL (di tutti i dialetti) indipendentemente che tu usi DAO o ADO.


    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Mille Grazie

    Seguiro' il consigio e in tanto ti dico che ho provato e funziona alla grande.
    Cerchero' di fare un passo in piu', azzardero' a passare in VS 8
    Spero di riuscirci a capirci qualcosaù

    Ciao e grazie mille
    vrclaudio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.