Skulle behöva hjälp med att hämta ut från databasen. Har hittills följande kod:
Const sql1 = "Select Company FROM Companies"
Const sql2 = "Select URL address, Phone, Company FROM Companies"
Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databas.mdb"
Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(conString)
Dim objDataSet As DataSet = New DataSet()
Dim objDataAdapter As OleDb.OleDbDataAdapter
Private Sub myData(ByVal SQLn As String)
objDataSet = New DataSet()
conn = New OleDb.OleDbConnection(conString)
conn.Open()
objDataAdapter = New OleDb.OleDbDataAdapter(SQLn, conn)
objDataAdapter.Fill(objDataSet, "Companies")
conn.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myData(sql1)
cbNamn.DataSource = objDataSet.Tables("Companies")
cbNamn.DisplayMember = "Company"
End Sub
Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
myData(sql2)
If Me.cbNamn.SelectedIndex <> -1 Then
txtTelefon.Text = objDataSet.Companies.Rows(cbNamn.SelectedIndex)("Phone").ToString
txtMail.Text = objDataSet.Companies.Rows(cbNamn.SelectedIndex)("URLaddress").ToString
Else
Exit Sub
End If
End Sub
Det är när man trycker på cbNamn (ComboBox) som det ska hämtas från databasen. Som koden ser ut nu, så gnäller den följande:
Companies' is not a member of 'System.Data.DataSet'
Syntaxfel (operator saknas) i frågeuttrycket 'URL address'.
på raden:
objDataAdapter.Fill(objDataSet, "Companies")
i
Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
Const sql1 = "Select Company FROM Companies"
Const sql2 = "Select URL address, Phone, Company FROM Companies"
Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databas.mdb"
Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(conString)
Dim objDataSet As DataSet = New DataSet()
Dim objDataAdapter As OleDb.OleDbDataAdapter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
objDataSet = New DataSet()
conn = New OleDb.OleDbConnection(conString)
conn.Open()
objDataAdapter = New OleDb.OleDbDataAdapter(sql1, conn)
objDataAdapter.Fill(objDataSet, "Companies")
conn.Close()
cbNamn.DataSource = objDataSet.Tables("Companies")
cbNamn.DisplayMember = "Company"
End Sub
Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
objDataSet = New DataSet()
conn = New OleDb.OleDbConnection(conString)
conn.Open()
objDataAdapter = New OleDb.OleDbDataAdapter(sql2, conn)
objDataAdapter.Fill(objDataSet, "Companies")
conn.Close()
If Me.cbNamn.SelectedIndex <> -1 Then
txtTelefon.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("telefon").ToString()
txtMail.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("email").ToString()
Else
Exit Sub
End If
End Sub
Du har glömt ett ',' (komma) i SQL-satsen. Borde vara: Const sql2 = "Select URL, address, Phone, Company FROM Companies"
Sedan förstår jag inte varför du hämtar samma info från databasen igen. Tycker att du istället borde hämta allting på en gång, och sedan bara plocka ut info:n ur datasetet när man har valt en post i cbNamn.
Egentligen skulle cbNamn_SelectedIndexChanged kunna se ut så här:
Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
If Me.cbNamn.SelectedIndex <> -1 Then
txtTelefon.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("telefon").ToString()
txtMail.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("email").ToString()
End If
End Sub