
Originariamente inviata da
rosco82
si, la datagrid è ok.....vedo l'id città ma sono riuscito a visualizzare il nome e a nascondere appunto l'idcittà;
per quanto riguarda la query....vado sulla datagrid e le dico "aggiungi query", poi nel generatore di query, imposto nella colonna città il filtro "= ?", così facendo mi genera nella form una toolstrip.........nella toolstrip metto ad esempio il numero 6 e mi filtra la datagrid con le città che hanno come id il numero 6, ma devo scriverlo a mano e devo indicare l'id e non il nome della città.
La combobox è a posto......vedo nell'elenco a discesa, la lista di tutte le città scritte in lettere ma, come valore membro ho impostato l'idcitta.
adesso per quanto riguarda la stringa gridtable.defaultview.rowfilter = "IDcitta =6", non riesco ad adattarla perché mi dice che defaultview non è membro del mio dataset (cosa voglia dire non lo so) e poi.....se io scrivo "IDcitta =6", lui mi restituisce la città numero 6 invece deve essere deciso dalla combobox, non posso scrivere IDcitta = "" perchè non lo accetta.
nella peggiore delle ipotesi creo tanti button quante sono le città, perché non so più cosa fare.
ti ringrazio ancora per l'aiuto
Alla fine mi sono stufato di provare a immaginare cosa fai e ho fatto io direttamente una prova.
A me funziona tutto. Ti incollo il codice:
codice:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim table As New DataTable
Dim combo As New DataTable
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Renny\Google Drive\GOLDEN\Appuntamenti\Appuntamenti.accdb; Persist Security Info=False;")
Using Command As New OleDbCommand("SELECT GLOBALE.ID, GLOBALE.visita, GLOBALE.Cognome, GLOBALE.Nome, GLOBALE.Nascita, GLOBALE.Telefono, Comuni.Comune, Comuni.IDComune FROM (GLOBALE INNER JOIN Comuni ON GLOBALE.Comune = Comuni.IDComune)", conn)
Dim tableadapter As New OleDb.OleDbDataAdapter(Command)
Try
tableadapter.Fill(table)
Catch ex As Exception
Debug.Print(ex.ToString)
End Try
End Using
Using Command As New OleDbCommand("SELECT * FROM Comuni", conn)
Dim tableadapter As New OleDb.OleDbDataAdapter(Command)
Try
tableadapter.Fill(combo)
Catch ex As Exception
Debug.Print(ex.ToString)
End Try
End Using
End Using
Me.DataGridView1.DataSource = table
DataGridView1.Columns("IDComune").Visible = False
Me.ComboBox1.DisplayMember = "Comune"
Me.ComboBox1.ValueMember = "IDComune"
Me.ComboBox1.DataSource = combo
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim table As DataTable = Me.DataGridView1.DataSource
table.DefaultView.RowFilter = "IDComune =" & CStr(ComboBox1.SelectedValue)
End Sub