Page 1 of 2

แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Thu Oct 25, 2018 6:23 pm
by noona
สวัสดีค่ะ ขอสอบถามเกี่ยวกับการบันทึกข้อมูลที่มีอยู่แล้ว ผ่าน userForm

เมื่อค้นหาข้อมูลที่ต้องการจาก Sheet "Data" แก้ไขบันทึกกลับลงที่เดิมโดยใช้ปุ่ม "บันทึก" แต่ไม่สามารถทำได้ รบกวนผู้รู้ช่วยดูโค้ดให้หน่อยนะคะ เมื่อรันดู จะขึ้น Error type Mismatch
ขอบคุณค่ะ

Code: Select all

Private Sub CmdSave_Click()
Dim irow As Integer
    Dim ws As Worksheet
    Set ws = Worksheets("Data")
    
    'find first empty row in database
    irow = ws.Cells(Rows.Count, 1) _
        .End(xlUp).Offset(1, 0).Row
        
    'Check for Id
    If (Me.TxtID.Value) = "" Then
        Me.TxtID.SetFocus
    Exit Sub
    End If
If Application.CountIf(Range("b:b"), TxtID.Text) > 0 Then
    irow = Application.Match(TxtID.Text, Range("b:b"), 0)
Else
    irow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
End If
   MsgBox "ÁÕ¢éÍÁÙżÙé»èÇÂáÅéÇ"
   Exit Sub

    'copy the data to the database
    ws.Cells(irow, 2).Value = Me.TxtID.Value
    ws.Cells(irow, 3).Value = Me.listTitle.Value
    ws.Cells(irow, 4).Value = Me.txtName.Value
    ws.Cells(irow, 5).Value = Me.txtSurename.Value
    ws.Cells(irow, 6).Value = Me.liststatus.Value
    ws.Cells(irow, 7).Value = Me.txtMobile.Value
    Unload Me

    'Clear the data
    Me.TxtID.Value = ""
    Me.listTitle.Value = ""
    Me.txtName.Value = ""
    Me.txtSurename.Value = ""
    Me.liststatus.Value = ""
    Me.txtMobile.Value = ""
    Me.TextBox1.SetFocus
    
 
End Sub

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Thu Oct 25, 2018 7:27 pm
by puriwutpokin
ควรแนบตัวอย่างไฟล์ที่ เป็นปัญหามาด้วยครับ จะได้ทดสอบได้ครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Fri Oct 26, 2018 9:21 am
by noona
puriwutpokin wrote: Thu Oct 25, 2018 7:27 pm ควรแนบตัวอย่างไฟล์ที่ เป็นปัญหามาด้วยครับ จะได้ทดสอบได้ครับ
แนบไฟล์มาแล้วค่ะ รบกวนด้วยนะคะ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Fri Oct 26, 2018 10:47 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub CmdSave_Click()
    Dim irow As Integer
    Dim msgRepns As Integer
    Dim ws As Worksheet
    Set ws = Worksheets("Data")
    
    'find first empty row in database
    irow = ws.Cells(Rows.Count, 1) _
        .End(xlUp).Offset(1, 0).Row
        
    'Check for Id
    If (Me.TxtID.Value) = "" Then
        Me.TxtID.SetFocus
    Exit Sub
    End If
    If Application.CountIf(Range("b:b"), TxtID.Text) > 0 Then
        irow = Application.Match(CDbl(TxtID.Text), Range("b:b"), 0)
        msgRepns = MsgBox("มีข้อมูลผู้ป่วยแล้ว หากต้องการแก้ไขข้อมูลเดิมคลิก Yes หากต้องการยกเลิกคลิก NO", vbYesNo)
    Else
        irow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    End If
    If msgRepns = vbNo Then
        Exit Sub
    End If
    'copy the data to the database
    ws.Cells(irow, 2).Value = Me.TxtID.Value
    ws.Cells(irow, 3).Value = Me.listTitle.Value
    ws.Cells(irow, 4).Value = Me.txtName.Value
    ws.Cells(irow, 5).Value = Me.txtSurename.Value
    ws.Cells(irow, 6).Value = Me.liststatus.Value
    ws.Cells(irow, 7).Value = Me.txtMobile.Value
    Unload Me

    'Clear the data
    Me.TxtID.Value = ""
    Me.listTitle.Value = ""
    Me.txtName.Value = ""
    Me.txtSurename.Value = ""
    Me.liststatus.Value = ""
    Me.txtMobile.Value = ""
    MsgBox "บันทึกสำเร็จ"
End Sub

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Oct 29, 2018 2:08 pm
by noona
ได้แล้วนะคะ ขอบคุณมากค่ะ
ขอทราบแนวคิดอาจารย์หน่อยได้ไหมคะ ว่าทำไมถึงใช้วิธีประกาศตัวแปร Dim msgRepns As Integer แล้วทำไมโค้ดชุดแรกถึงทำงานไม่ได้
snasui wrote: Fri Oct 26, 2018 10:47 pm :D ตัวอย่าง Code ครับ

Code: Select all

Private Sub CmdSave_Click()
    Dim irow As Integer
    Dim msgRepns As Integer
    Dim ws As Worksheet
    Set ws = Worksheets("Data")
    
    'find first empty row in database
    irow = ws.Cells(Rows.Count, 1) _
        .End(xlUp).Offset(1, 0).Row
        
    'Check for Id
    If (Me.TxtID.Value) = "" Then
        Me.TxtID.SetFocus
    Exit Sub
    End If
    If Application.CountIf(Range("b:b"), TxtID.Text) > 0 Then
        irow = Application.Match(CDbl(TxtID.Text), Range("b:b"), 0)
        msgRepns = MsgBox("มีข้อมูลผู้ป่วยแล้ว หากต้องการแก้ไขข้อมูลเดิมคลิก Yes หากต้องการยกเลิกคลิก NO", vbYesNo)
    Else
        irow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    End If
    If msgRepns = vbNo Then
        Exit Sub
    End If
    'copy the data to the database
    ws.Cells(irow, 2).Value = Me.TxtID.Value
    ws.Cells(irow, 3).Value = Me.listTitle.Value
    ws.Cells(irow, 4).Value = Me.txtName.Value
    ws.Cells(irow, 5).Value = Me.txtSurename.Value
    ws.Cells(irow, 6).Value = Me.liststatus.Value
    ws.Cells(irow, 7).Value = Me.txtMobile.Value
    Unload Me

    'Clear the data
    Me.TxtID.Value = ""
    Me.listTitle.Value = ""
    Me.txtName.Value = ""
    Me.txtSurename.Value = ""
    Me.liststatus.Value = ""
    Me.txtMobile.Value = ""
    MsgBox "บันทึกสำเร็จ"
End Sub

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Tue Oct 30, 2018 11:59 pm
by snasui
:D แบบเดิมใช้ไม่ได้เพราะเขียนไม่ถูกต้องครับ

คอลัมน์ B ใน Worksheet คือ Number ส่วนค่าใน TxtID คือ Text จะต้องแปลงให้เป็น Number เสียก่อนจึงจะเทียบกันได้

กรณีมีการแก้ไขข้อมูลเดิม และต้องการบันทึกลงที่เดิมก็ควรจะทำได้ด้วยผมจึงกำหนดตัวแปรเข้าไปกำกับ ให้ผู้ใช้ตอบว่าจะบันทึกการแก้ไขข้อมูลเดิมหรือไม่ หากไม่ก็จะไม่บันทึกทับข้อมูลเดิมเช่นนี้เป็นต้นครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Wed Oct 31, 2018 9:24 am
by noona
User Form แบบนี้หากมีการแชร์ไฟล์ให้ user เข้ามาใช้งานจะสามารถใช้พร้อมๆกันได้หรือเปล่าคะ

ขอบคุณมากนะคะ ที่กรุณาตอบทุกคำถามเลย :D
snasui wrote: Tue Oct 30, 2018 11:59 pm :D แบบเดิมใช้ไม่ได้เพราะเขียนไม่ถูกต้องครับ

คอลัมน์ B ใน Worksheet คือ Number ส่วนค่าใน TxtID คือ Text จะต้องแปลงให้เป็น Number เสียก่อนจึงจะเทียบกันได้

กรณีมีการแก้ไขข้อมูลเดิม และต้องการบันทึกลงที่เดิมก็ควรจะทำได้ด้วยผมจึงกำหนดตัวแปรเข้าไปกำกับ ให้ผู้ใช้ตอบว่าจะบันทึกการแก้ไขข้อมูลเดิมหรือไม่ หากไม่ก็จะไม่บันทึกทับข้อมูลเดิมเช่นนี้เป็นต้นครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Wed Oct 31, 2018 9:24 pm
by snasui
:D ไฟล์ที่มี Macro ไม่รองรับการ Shared จึงไม่สามารถ Shared ให้ใช้ได้พร้อมกันหลาย ๆ คนครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Wed Nov 07, 2018 5:09 pm
by noona
ขอบคุณค่ะอาจารย์ อาจารย์หมายถึง Shared Workbook ใช่ไหมค่ะ พอจะมีวิธีไหนแนะนำหรือไม่คะ ตั้งใจว่าเมื่อทำเสร็จแล้วอยากจะแชร์ไฟล์จากเครื่องตัวเองแล้วให้ให้ User เข้ามาใช้ไฟล์นี้เพื่อแก้ไขข้อมูลของตัวเองค่ะ

ขอถามอาจารย์เพิ่มเติมนะคะ เวลาใช้งานถ้า hide sheet data ที่เป็นฐานข้อมูลไว้ ทำให้ค้นหาข้อมูลไม่ได้ ไม่ทราบว่าต้องแก้ยังไงคะ
(ไม่ต้องการโชว์ Data เวลาใช้งาน อยากให้เห็นแต่ Form ค่ะ)
snasui wrote: Wed Oct 31, 2018 9:24 pm :D ไฟล์ที่มี Macro ไม่รองรับการ Shared จึงไม่สามารถ Shared ให้ใช้ได้พร้อมกันหลาย ๆ คนครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Wed Nov 07, 2018 8:45 pm
by snasui
:D ไฟล์ที่มี Macro ไม่มีวิธีแก้ให้ Shared Workbook ได้ครับ

วิธีการทำงานที่ควรจะเป็น
  1. มีไฟล์โปรแกรมต่างหาก โดย User ใด ๆ ก็ต้องใช้ไฟล์นี้ ใช้จากเครื่องใดก็ได้
  2. มีไฟล์ Database อยู่ในเครื่องที่ Shared File ไว้
  3. ใช้ไฟล์ตามข้อ 1 จะจัดการกับข้อมูลในไฟล์ตามข้อ 2
  4. ไฟล์ตามข้อ 2 เป็นตัวแทนของการเป็น Database สามารถเปลี่ยนไปเป็น Database แบบอื่น เช่น Access, SQL, Oracle หรืออื่น ๆ ได้ตามความจำเป็น

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Nov 12, 2018 4:39 pm
by noona
แยกออกมาเป็นคนล่ะไฟล์แล้ว หนูต้องใส่สูตรไว้ตรงส่วนไหนคะ เพื่อค้นหาและบันทึกกลับไปที่ Database

ไม่รู้จะเริ่มจากตรงไหน รบกวนอาจารย์ชี้แนะด้วยนะคะ

ใช้ path และชื่อไฟล์ตามนี้ค่ะ
path C:\Users\THA0753H\Desktop
ชื่อไฟล์ Employee Data.xlsx

Code: Select all

Private Sub CmdFind_Click()

On Error Resume Next
'Err.Clear
nRow = Workbooks("Employee Data.xlsx").Worksheets("Data").Columns(4).Find(Txtfind.Text).Row

If Err.Number = 91 Then

    TxtID.Value = "Not Found"
    listTitle.Value = "Not Found"
    txtName.Value = "Not Found"
    txtSurename.Value = "Not Found"
    liststatus.Value = "Not Found"
    txtMobile.Value = "Not Found"
       MsgBox "Don't have this Name"
    GoTo nNextี
End If

    TxtID.Value = Cells(nRow, 2)
    listTitle.Value = Cells(nRow, 3)
    txtName.Value = Cells(nRow, 4)
    txtSurename.Value = Cells(nRow, 5)
    liststatus.Value = Cells(nRow, 6)
    txtMobile.Value = Format(Cells(nRow, 7), "000-0000000")
    'current address
    Txtno1.Value = Cells(nRow, 9)
    TxtMoo1.Value = Cells(nRow, 10)
    Txtban1.Value = Cells(nRow, 11)
    Txtsoi1.Value = Cells(nRow, 12)
    Txtroad1.Value = Cells(nRow, 13)
    listtambon1.Value = Cells(nRow, 14)
    listampor1.Value = Cells(nRow, 15)
    listprovince1.Value = Cells(nRow, 16)
    Txtcode1.Value = Cells(nRow, 17)
    'home address
    Txtno2.Value = Cells(nRow, 18)
    TxtMoo2.Value = Cells(nRow, 19)
    Txtban2.Value = Cells(nRow, 20)
    Txtsoi2.Value = Cells(nRow, 21)
    Txtroad2.Value = Cells(nRow, 22)
    listtambon2.Value = Cells(nRow, 23)
    listampor2.Value = Cells(nRow, 24)
    listprovince2.Value = Cells(nRow, 25)
    Txtcode2.Value = Cells(nRow, 26)
    Cells(nRow, 2).Activate
    
nNext:
End Sub

Private Sub CmdSave_Click()
    Dim irow As Integer
    Dim msgRepns As Integer
    Dim ws As Worksheet
    Set ws = Worksheets("Data")
    
    'find first empty row in database
    irow = ws.Cells(Rows.Count, 1) _
        .End(xlUp).Offset(1, 0).Row
        
    'Check for Id
    If (Me.TxtID.Value) = "" Then
        Me.Txtfind.SetFocus
       
    Exit Sub
    End If
    If Application.CountIf(Range("b:b"), TxtID.Text) > 0 Then
        irow = Application.Match(CDbl(TxtID.Text), Range("b:b"), 0)
        msgRepns = MsgBox("ต้องการแก้ไขข้อมูล ?", vbYesNo)
    Else
        irow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    End If
    If msgRepns = vbNo Then
        Exit Sub
    End If
    'copy the data to the database
    ws.Cells(irow, 2).Value = Me.TxtID.Value
    ws.Cells(irow, 3).Value = Me.listTitle.Value
    ws.Cells(irow, 4).Value = Me.txtName.Value
    ws.Cells(irow, 5).Value = Me.txtSurename.Value
    ws.Cells(irow, 6).Value = Me.liststatus.Value
    ws.Cells(irow, 7).Value = Format(Me.txtMobile.Value, "000-0000000")
    'current address
    ws.Cells(irow, 9).Value = Me.Txtno1.Value
    ws.Cells(irow, 10).Value = Me.TxtMoo1.Value
    ws.Cells(irow, 11).Value = Me.Txtban1.Value
    ws.Cells(irow, 12).Value = Me.Txtsoi1.Value
    ws.Cells(irow, 13).Value = Me.Txtroad1.Value
    ws.Cells(irow, 14).Value = Me.listtambon1.Value
    ws.Cells(irow, 15).Value = Me.listampor1.Value
    ws.Cells(irow, 16).Value = Me.listprovince1.Value
    ws.Cells(irow, 17).Value = Me.Txtcode1.Value
    'home address
    ws.Cells(irow, 18).Value = Me.Txtno2.Value
    ws.Cells(irow, 19).Value = Me.TxtMoo2.Value
    ws.Cells(irow, 20).Value = Me.Txtban2.Value
    ws.Cells(irow, 21).Value = Me.Txtsoi2.Value
    ws.Cells(irow, 22).Value = Me.Txtroad2.Value
    ws.Cells(irow, 23).Value = Me.listtambon2.Value
    ws.Cells(irow, 24).Value = Me.listampor2.Value
    ws.Cells(irow, 25).Value = Me.listprovince2.Value
    ws.Cells(irow, 26).Value = Me.Txtcode2.Value
    'Unload Me
     ws.Cells(irow, 27).Value = Format(Me.TxtDate.Value, "dd/mm/yyyy")
    'Clear the data
    Me.TxtID.Value = ""
    Me.listTitle.Value = ""
    Me.txtName.Value = ""
    Me.txtSurename.Value = ""
    Me.liststatus.Value = ""
    Me.txtMobile.Value = ""
    Me.Txtfind.Value = ""
    Me.Txtno1.Value = ""
    Me.TxtMoo1.Value = ""
    Me.Txtban1.Value = ""
    Me.Txtsoi1.Value = ""
    Me.Txtroad1.Value = ""
    Me.listtambon1.Value = ""
    Me.listampor1.Value = ""
    Me.listprovince1.Value = ""
    Me.Txtcode1.Value = ""
    Me.Txtno2.Value = ""
    Me.TxtMoo2Value = ""
    Me.Txtban2.Value = ""
    Me.Txtsoi2.Value = ""
    Me.Txtroad2.Value = ""
    Me.listtambon2.Value = ""
    Me.listampor2.Value = ""
    Me.listprovince2.Value = ""
    Me.Txtcode2.Value = ""
    
    MsgBox "บันทึกสำเร็จ"
End Sub
snasui wrote: Wed Nov 07, 2018 8:45 pm :D ไฟล์ที่มี Macro ไม่มีวิธีแก้ให้ Shared Workbook ได้ครับ

วิธีการทำงานที่ควรจะเป็น
  1. มีไฟล์โปรแกรมต่างหาก โดย User ใด ๆ ก็ต้องใช้ไฟล์นี้ ใช้จากเครื่องใดก็ได้
  2. มีไฟล์ Database อยู่ในเครื่องที่ Shared File ไว้
  3. ใช้ไฟล์ตามข้อ 1 จะจัดการกับข้อมูลในไฟล์ตามข้อ 2
  4. ไฟล์ตามข้อ 2 เป็นตัวแทนของการเป็น Database สามารถเปลี่ยนไปเป็น Database แบบอื่น เช่น Access, SQL, Oracle หรืออื่น ๆ ได้ตามความจำเป็น

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Nov 12, 2018 7:31 pm
by snasui
:D แนบไฟล์นั้นมาพร้อมทั้งไฟล์ปลายทาง อธิบายสิ่งที่ต้องการว่าจะทำอะไร ต้องกรอกค่าทดสอบใดบ้าง คลิกปุ่มไหน ผลลัพธ์ที่ถูกต้องจะต้องเป็นอย่างไร ที่ทำมาแล้วติดขัดตรง Procedure ใด บรรทัดใด ฯลฯ จะได้ช่วยดูต่อไปจากนั้นครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Tue Nov 13, 2018 11:22 am
by noona
snasui wrote: Mon Nov 12, 2018 7:31 pm :D แนบไฟล์นั้นมาพร้อมทั้งไฟล์ปลายทาง อธิบายสิ่งที่ต้องการว่าจะทำอะไร ต้องกรอกค่าทดสอบใดบ้าง คลิกปุ่มไหน ผลลัพธ์ที่ถูกต้องจะต้องเป็นอย่างไร ที่ทำมาแล้วติดขัดตรง Procedure ใด บรรทัดใด ฯลฯ จะได้ช่วยดูต่อไปจากนั้นครับ
ใช้ ไฟล์ userform-test ดึงข้อมูลจาก ไฟล์ Data มาแสดง ในขณะที่ ไฟล์ data ไม่ได้เปิดอยู่ สามารถทำได้อย่างไรบ้างคะ ไม่รู้ว่าจะต้องใส่โค้ดเพิ่มอย่างไรค่ะ

ใช้ path และชื่อไฟล์ตามนี้ค่ะ
path C:\Users\THA0753H\Desktop
ชื่อไฟล์ Data.xlsx

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Tue Nov 13, 2018 6:27 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub CmdFind_Click()
Dim wb As Workbook
On Error Resume Next
'Err.Clear
Set wb = Workbooks.Open("C:\Users\THA0753H\Desktop\Employee Data.xlsx")
nRow = wb.Worksheets("Data").Columns(4).Find(Txtfind.Text).Row
'Other code
wb.Close false
End sub

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Wed Nov 14, 2018 3:50 pm
by noona
snasui wrote: Tue Nov 13, 2018 6:27 pm :D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub CmdFind_Click()
Dim wb As Workbook
On Error Resume Next
'Err.Clear
Set wb = Workbooks.Open("C:\Users\THA0753H\Desktop\Employee Data.xlsx")
nRow = wb.Worksheets("Data").Columns(4).Find(Txtfind.Text).Row
'Other code
wb.Close false
End sub

ขอบคุณสำหรับทุกตอบเลยนะคะ :D พอทำไปจะพบปัญหามากขึ้นเรื่อย ขอรบกวนอาจารย์เพิ่มเติมอีกนะคะ

หลังจากที่แก้ไขโค้ดที่ปุ่ม "ค้นหา" ตามที่อาจารย์แนะนำแล้วซึ่งใช้ได้ดีเลยค่ะ จึงนำไปใช้กับปุ่ม "บันทึก"
ปัญหาอยู่ที่ พอคลิกปุ่ม "บันทึก"แล้ว คอนเฟิร์มการแก้ไขข้อมูล ไม่ต้องการให้ ไฟล์ Data เปิดขึ้นมาด้วย ไม่สามารถว่าทำได้หรือไม่ค่ะ

ขอความกรุณาอาจารย์ช่วยแนะนำ ถ้าต้องการสร้าง Listbox แบบตัวอย่างในรูปที่อยู่ พอจะมีตัวอย่างให้ศึกษาดูบ้างไหมคะ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Thu Nov 15, 2018 9:34 pm
by snasui
:D ตอนบันทึกไม่ต้องเขียนให้เปิดไฟล์ขึ้นมาใหม่ เพราะเปิดอยู่แล้วตอนค้นหา

Code ไหนที่เปิดการเปิดไฟล์ก็ให้ Mark เป็น Comment หรือลบทิ้งไปครับ

ListBox ตามภาพที่ถามเหมือนจับภาพมาจากเว็บ การสร้าง ListBox ก็แค่เพิ่ม ListBox เข้าไปครับ จะให้เหมือน Web เสียเลยทีเดียวก็คงไม่ได้ หากจะพยายามปรับแต่งก็พอจะพอใกล้เคียง แต่น่าจะเป็นเรื่องที่ไม่จำเป็นนัก ให้มันทำตาม Requirement ให้ครบก็พอแล้วครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Nov 19, 2018 11:42 am
by noona
อาจารย์คะ มันมี Error ไม่ทราบว่าต้องแก้ไขเพิ่มเติมตรงไหนอีกหรือไม่คะ
snasui wrote: Thu Nov 15, 2018 9:34 pm :D ตอนบันทึกไม่ต้องเขียนให้เปิดไฟล์ขึ้นมาใหม่ เพราะเปิดอยู่แล้วตอนค้นหา

Code ไหนที่เปิดการเปิดไฟล์ก็ให้ Mark เป็น Comment หรือลบทิ้งไปครับ

ListBox ตามภาพที่ถามเหมือนจับภาพมาจากเว็บ การสร้าง ListBox ก็แค่เพิ่ม ListBox เข้าไปครับ จะให้เหมือน Web เสียเลยทีเดียวก็คงไม่ได้ หากจะพยายามปรับแต่งก็พอจะพอใกล้เคียง แต่น่าจะเป็นเรื่องที่ไม่จำเป็นนัก ให้มันทำตาม Requirement ให้ครบก็พอแล้วครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Nov 19, 2018 12:34 pm
by puriwutpokin
ตอนรันก็ปกตินะครับ ได้ใช้คำสั่งเปิดไฟล์ไว้ด้วยหรือไม่ครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Nov 19, 2018 3:21 pm
by noona
ไม่ได้ใช้ค่ะ ต้องการค้นหาแล้วบันทึกกลับที่เดิมค่ะ

ปัญหาในตอนแรกคือ ใช้คำสั่งเปิดไฟล์ด้วยทำให้ฐานข้อมูลเด้งขึ้นมาตอนกดบันทึก ไม่ต้องการให้เด้งขึ้นมาจึงเอาคำสั่ง Open ออก ไม่แน่ใจว่าทำตรงไหนผิดจึงเกิด Error ตามรูปค่ะ
puriwutpokin wrote: Mon Nov 19, 2018 12:34 pm ตอนรันก็ปกตินะครับ ได้ใช้คำสั่งเปิดไฟล์ไว้ด้วยหรือไม่ครับ

Re: แก้ไขข้อมูลที่มีอยู่แล้ว ผ่าน userForm

Posted: Mon Nov 19, 2018 9:19 pm
by snasui
noona wrote: Mon Nov 19, 2018 3:21 pm ปัญหาในตอนแรกคือ ใช้คำสั่งเปิดไฟล์ด้วยทำให้ฐานข้อมูลเด้งขึ้นมาตอนกดบันทึก ไม่ต้องการให้เด้งขึ้นมาจึงเอาคำสั่ง Open ออก ไม่แน่ใจว่าทำตรงไหนผิด
:D ถ้าอ่านจากที่แจ้งมา ผิดตรงเอาการ Open ออกครับ หากจะบันทึกข้อมูลลงในไฟล์ต้นทาง เมื่อยังไม่เปิดไฟล์ต้นทางก็ต้องเปิดออกมาก่อน แต่เมื่อเปิดมาแล้วคำสั่งอื่น ๆ หลังจากนั้นไม่ต้องไป Open อีก เมื่อจบงานจึง Close เมื่อจะบันทึกจึงจะ Open ใหม่ เช่นนี้ครับ