Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    44

    [Access 2007]inner join errato

    ciao ragazzi sto facendo un applicazione in vb 2008,devo utilizzare questa query ma non va...l'ho provata anche in acces e mi da errore di sintassi
    codice:
    SELECT Cliente.*,Servizio.NomeServizio,Servizio.Importo 
    FROM Cliente 
     INNER JOIN Cliente_Servizio
    ON Cliente.IDcliente=Cliente_Servizio.Cliente
     INNER JOIN Servizio 
    ON Servizio.CodServizio=Cliente_Servizio.Servizio;
    dice errore di sintassi(operatore mancante)nell'espressione della query Cliente.IDcliente=Cliente_Servizio.Cliente
    INNER JOIN Servizio
    ON Servizio.CodServizio=Cliente_Servizio.Servizio;

    perchè?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Visto che stai usando access prova a creare la query tramite interfaccia grafica e vedi un pò le parentesi che verranno aggiunte automaticamente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    44
    come si crea tramite interfaccia grafica? è la prima volta che uso access..

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Crei la query in visualizzazione struttura, selezioni le tre tabelle e trascini nella griglia i campi che ti interessano. Leggiti un minimo di documentazione in rete o dalla guida in linea.

  5. #5
    è questione di parentesi, access le vuole in un ordine particolare. segui il consiglio di nicolino

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    44
    ok grazie risolto...un ultima cosa
    codice:
     sql = "SELECT Cliente.Cognome, Cliente.Nome, Cliente.Indirizzo, Cliente.Comune, Cliente.[Cognome Defunto], Cliente.[Nome Defunto], Cliente.[Zona Interrato], Cliente.[Posizione Nro], Servizio.NomeServizio, Servizio.Importo FROM Servizio INNER JOIN (Cliente INNER JOIN Cliente_Servizio ON Cliente.IDcliente = Cliente_Servizio.Cliente) ON Servizio.CodServizio = Cliente_Servizio.Servizio WHERE Cliente.IDcliente =Ultimo_Id;
    la WHERE non va a buon fine perchè Ultimo_ID è una variabile calcolata precendete mente...
    come la posso utilizzare?

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Chiudi la stringa sql e concateni la variabile.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    44
    chiudo la stringa Sql e concateno?cioè? forse ho capito..provo...

  9. #9
    sql="select ....." + variabile

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    44
    si grazie risolto..in parte...perchè se ho tot record mi visualizza solo tot-1?posto codice Vb 2008 se devo aprire un altro topic nella giusta sezione ditemelo
    codice:
     Dim ObjCommand As OleDbCommand
            Dim Ultimo_ID
            'Connessione
            cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= DbCarrara.accdb"
            cnn.Open()
            ObjCommand = New OleDbCommand("SELECT TOP 1 * FROM Cliente ORDER BY IDcliente DESC", cnn)
            Ultimo_ID = ObjCommand.ExecuteScalar()
            'Query
            sql = "SELECT Cliente.Cognome, Cliente.Nome, Cliente.Indirizzo, Cliente.Comune, Cliente.[Cognome Defunto], Cliente.[Nome Defunto], Cliente.[Zona Interrato], Cliente.[Posizione Nro], Servizio.NomeServizio, Servizio.Importo FROM Servizio INNER JOIN (Cliente INNER JOIN Cliente_Servizio ON Cliente.IDcliente = Cliente_Servizio.Cliente) ON Servizio.CodServizio = Cliente_Servizio.Servizio WHERE Cliente.IDcliente =" & Ultimo_ID
            'Dataset
            dts = New DataSet("DbCarrara")
            'DataAdapter
            dtp = New OleDb.OleDbDataAdapter(sql, cnn)
            dtp.Fill(dts, "DbCarrara")
            'BindingSource
            bds = New BindingSource()
            bds.DataSource = dts
            bds.DataMember = "DbCarrara"
            'DataGridView
            DataGridView1.DataSource = bds
            cnn.Close()
    
        End Sub
    nel datagridview mi visualizza sempre un record in meno..come mai?

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.