Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    4

    VB Access 2003 errore di sintassi (operatore mancante) nell'esspressione della query

    ciao questo è il codice associoato al click di un tasto in una maschera:

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim stringa As String
    Dim stDocName As String

    stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    stringa = stringa & "C:\Users\Administrator\Documents\gianluca\databas e ufficio verde pubblico e Foreste\giochi.mdb"

    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    criterio = text0.Value

    cn.Open stringa
    rs.Open "SELECT * FROM Anagrafica WHERE Anagrafica.[nome_completo]=" & criterio & ";", cn, 1

    in pratica vorrei fare una riceca in base al nome del gioco inserendo il testo in una casella messa in una maschera.
    Mi da errore di sintassi (operatore mancante) nell'espressione della query 'Anagrafica.[nome_completo]=gioco 1' dove gioco 1 è quello che ho scritto io... non capisco quale sia l'errore di sintassi, potete aiutarmi?
    grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    1. I valori per i campi di tipo testo vanno racchiusi tra apici
    2. Gli apici raddoppiati:

    codice:
    criterio = "'" & Replace(criterio , "'","''") & "'"
    "SELECT * FROM Anagrafica WHERE campo=" & criterio & ";", cn, 1
    Ma ci sono un sacco di altre convenzioni sulla formattazione dei valori nelle query.
    Questo modo di costruire gli enunciati SQL è vecchio e sbagliato.

    Oggi si usano i Command e Parameters.
    Leggi il mio articolo in firma su ADODB che vedi in firma.


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 © 2024 vBulletin Solutions, Inc. All rights reserved.