 |
|

รบกวนสอบถามครับผม ตาราง ที่ 1 เป็น ข้อมูล Acess ตารางที่ 2 เป็น ข้อมูลที่ นำเข้าจากไฟล์ Excel ครับผม
ตารางที่ 3 ต้องการข้อมูล จากฐานข้อมูล Acess โดยลูปค้นหา จากชื่อ ในตารางที่ 2 แล้วนำมาแสดงใน ตารางที่ 3
แต่ ผมไม่ทราบว่าต้อง เขียนคำสั่งแบบไหน ดี รบกวนช่วยชี้แนะ ด้วยครับผม
โค๊ดที่ผมลองเขียนครับ ใน Button3 ผมควรแก้ไขอย่างไรดีครับผม ขอบพระคุณพื้นที่ในการโพสถามครับผม
Imports System.Data.OleDb
Imports System.IO
Public Class Form1
Public Conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\MyData.MDB")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sql As String = "SELECT * FROM Table1"
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader
cmd = New OleDbCommand(sql, Conn)
DataGridView1.Columns.Add("c1", "ชื่อ")
DataGridView1.Columns.Add("c2", "SCB")
DataGridView1.Columns.Add("c3", "KTB")
DataGridView1.Columns.Add("c4", "TMB")
DataGridView1.Columns.Add("c5", "UOB")
DataGridView1.Columns(0).Width = 45
DataGridView1.Columns(1).Width = 45
DataGridView1.Columns(2).Width = 45
DataGridView1.Columns(3).Width = 45
DataGridView1.Columns(4).Width = 45
Try
If Conn.State = ConnectionState.Open Then Conn.Close()
Conn.Open()
dr = cmd.ExecuteReader
DataGridView1.Rows.Clear()
While dr.Read
DataGridView1.Rows.Add(dr(0), dr(1), dr(2), dr(3), dr(4))
End While
Conn.Close()
cmd.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'นำเข้าข้อมูลจาก excel มาใส่ตารางที่ 2
Dim econn As OleDbConnection
Dim eda As OleDbDataAdapter
Dim eds As DataSet
Dim excel As String
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog1.FileName = ""
OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
OpenFileDialog1.Filter = "Excel files (*.xlsx)|*.xlsx|XLS Files (*.xls)|*xls"
If (OpenFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
DataGridView2.Columns.Clear()
Dim fi As New FileInfo(OpenFileDialog1.FileName)
Dim FileName As String = OpenFileDialog1.FileName
excel = fi.FullName
econn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
eda = New OleDbDataAdapter("Select * From [Sheet1$]", econn)
eds = New DataSet
eda.Fill(eds, "[Sheet1$]")
DataGridView2.DataSource = eds
DataGridView2.DataMember = "[Sheet1$]"
econn.Close()
End If
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
'ค้นหาแบบเจาะจง เช่น ผู้ใช้ชื่อ C
' Dim cmd1 As New OleDbCommand("SELECT * FROM Table1 Where dName like '%' +@Name1+ '%' ", Conn)
Dim cmd1 As New OleDbCommand("SELECT dName, SCB, KTB, TMB, UOB FROM Table1 Where dName like '%' +@Name1+ '%' ", Conn)
cmd1.Parameters.AddWithValue("@Name1", TextBox1.Text)
DataGridView3.ClearSelection()
Dim da As New OleDbDataAdapter
da.SelectCommand = cmd1
Dim table1 As New DataTable
table1.Clear()
da.Fill(table1)
DataGridView3.DataSource = table1
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'ค้นหาข้อมูลจาก MyData.mdb โดยลูปจากชื่อ ในตารางที่ 2 แล้วนำมาแสดง ในตารางที่ 3
If DataGridView2.Rows.Count = 0 Then
Exit Sub
Else
End If
For i As Integer = 0 To DataGridView2.Rows.Count - 1
TextBox1.Text = DataGridView2.Rows(i).Cells(0).Value 'กำหนดให้ TextBox1.Text เก็บค่า จาก ตารางที่ 1 คอลัมที่ 1
Dim SearchQuery As String = "SELECT dName, SCB, KTB, TMB, UOB FROM Table1 Where dName='" & TextBox1.Text & "'"
Dim cmd1 As New OleDbCommand(SearchQuery, Conn)
cmd1.Parameters.AddWithValue("@dName1", TextBox1.Text)
Dim da As New OleDbDataAdapter
da.SelectCommand = cmd1
Dim dt As New DataTable
da.Fill(dt)
DataGridView3.DataSource = dt
Next
Conn.Close()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'นำตารางที่ 2 และ 3 มาบวกกัน แล้วแสดงผลลัพ ในตารางที่ 4
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'นำผลลัพที่ได้จากตารางที่ 4 กลับไปบันทีกที่ MyData.mdb โดยลูปจากชื่อ ในตารางที่ 4
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
'ปิดโปรแกรมจบการทำงาน
Me.Dispose()
Application.Exit()
'Close()
End Sub
End Class
Tag : .NET, Ms Access, Win (Windows App), VS 2010 (.NET 4.x)
|
|
 |
 |
 |
 |
Date :
2025-07-07 17:51:14 |
By :
tawitsittanong |
View :
20 |
Reply :
0 |
|
 |
 |
 |
 |
|
|
|
 |