ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 47|ตอบกลับ: 0

รบกวนสอบถาม วิธีลูปเช็คข้อมูลจากตารางดาต้ากริด ครับผม

[คัดลอกลิงก์]

1

กระทู้

1

โพสต์

23

เครดิต

Newbie

Rank: 1

เครดิต
23
โพสต์ 5 วันที่แล้ว | ดูโพสต์ทั้งหมด |โหมดอ่าน

หน้าตาโปรแกรม

หน้าตาโปรแกรม


รบกวนสอบถามครับผม ตาราง ที่ 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


ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2025-7-12 14:45 , Processed in 0.137524 second(s), 6 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้