Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1

    [VB+SQLServer] Errore: Nome di colonna non valido

    Ragazzi,
    lavoro il mio problema è questo:
    nel mio prg devo fare una ricerca i cui dati vengono estrapolati da una tabella temporanea creata ad hoc. il problema mi si pone nel momento dell'apertura del recordset che mi fa la select su quella tabella; mi si genera infatti il seguente errore:
    "Errore di runtime -2147217900(80040e14)
    [Microsoft][ODBC SQL Server Driver][SQL Server] Il nome di colonna '%a%' non è valido"

    ora, ciò che lui riconosce come nome di colonna è in realtà la condizione del Like, che è a sua volta una parte della condizione per cui vado a fare la select.
    qui di seguito vi posto il codice, sperando che sia leggibile.

    la stringa '%a%' la ottengo solo se nel form ho inserito il titolo.

    codice:
    Sub EseguiRicerca()
        Dim MioFiltro As String
        
       ' ricerca per titolo
        If Not IsNull(Trim(txtTitolo)) And Trim(txtTitolo) <> "" Then
            MioFiltro = "Descrizione Like ""%" & Trim(txtTitolo) & "%"""
        End If
       
       ' ricerca per autore
        If Not IsNull(dcAutore) And dcAutore <> "" Then
            If MioFiltro <> "" Then MioFiltro = MioFiltro & " AND "
            MioFiltro = MioFiltro & "Dettaglio1 = """ & dcAutore & """"
        End If
    
       ' ricerca per casa editrice
        If Not IsNull(dcEditore) And dcEditore <> "" Then
            If MioFiltro <> "" Then MioFiltro = MioFiltro & " AND "
            MioFiltro = MioFiltro & "Dettaglio2 = """ & dcEditore & """"
        End If
    
        Call MostraDettagli(1, MioFiltro)
    
    End Sub
    
    
    Sub MostraDettagli(Tipo As Integer, Optional MioFiltro As String)
    
      Dim miaSQL As String, MioRS As ADODB.Recordset
        
      Set MioRS = New ADODB.Recordset
    
       miaSQL = "SELECT * from #tbRicercaGlobale WHERE Tipo = " & Tipo
       If MioFiltro <> "" Then miaSQL = miaSQL & " AND " & MioFiltro
       
       miaSQL = miaSQL & " ORDER BY Descrizione"
    
      MioRS.Open miaSQL, miaConn, 1, 3
      If MioRS.EOF Then Exit Sub
    
    
    End Sub

    spero che sia tutto chiaro...


    grazie a tutti... come sempre...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  2. #2
    metti un msgbox miasql e posta il risultato

  3. #3
    ecco... il risultato di miaSQL è questo:

    codice:
    SELECT * from #tbRicercaGlobale WHERE Tipo = 1 AND
    Descrizione Like "%a%" AND Dettaglio1 = "DENTINI LUCA"
    AND Dettaglio2 = "FRATELLI FABBRI" ORDER BY Descrizione
    grazie optime...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    domanda d'obbligo: sei sicura che nella tabella temporanea esistano tutte le colonne citate?

  5. #5
    esistono tutte, esattamente con gli stessi nomi. anzi, nella tabella esiste anche una colonna Dettaglio3 che nella select non richiamo proprio.
    ecco il codice che crea la tabella:
    codice:
    Sub CreaTabelleTemporanee()
     
      Dim miaSQL As String
    
      miaSQL = "CREATE TABLE #tbRicercaGlobale (IDRicerca int, " & _
               "Descrizione varchar(255), Dettaglio1 varchar(50) " & _
               "NULL,Dettaglio2 varchar(50) NULL, " & _
               "Dettaglio3 varchar(50) NULL,Tipo int)"
      miaConn.Execute (miaSQL)
     
    End Sub

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    la query sembra buona, quindi vado per tentativi... ti da' errore solo se imposti qualcosa nella ricerca? hai provato a non usare LIKE? hai provato a usare l'apice singolo invece delle virgolette?

  7. #7
    dunque, se non inserisco un autore nel form, nella sub EseguiRicerca salto l'istruzione che inserisce in MioFiltro il like e la situazione non cambia, l'errore viene spostato al valore che voglio cercare nella colonna successiva. nel caso del codice che ho postato, invece di dirmi
    "errore... '%a%'..."

    mi dice
    "errore..."DENTINI LUCA"..."





    in ogni caso l'errore lo genera solo e soltanto nel momento in cui imposto il filtro alla select.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    la like non vuole il doppio apice ma l'apice singolo

  9. #9
    Originariamente inviato da darkblOOd
    la like non vuole il doppio apice ma l'apice singolo
    perfetto dark, così non mi genera errore sul like, però me lo genera sulla colonna successiva, come ho scritto nel post precedente.
    come mai, cavolini?...:master:

    grazie dark...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da ladyBlu
    perfetto dark, così non mi genera errore sul like, però me lo genera sulla colonna successiva, come ho scritto nel post precedente.
    come mai, cavolini?...:master:

    grazie dark...
    ti ho detto mille volte che devi imparare bene la concatenazione delle stringhe

    secondo me fai qualche casino con gli apici nella creazione del filtro e lui anzichè prenderti il paramentro come valore lo interpreta come nome campo....riguarda la stringa del filtro e vedrai che risolvi...eventualmente sai come rintracciarmi :tongue:

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.