:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

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

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#1

Post 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
User avatar
puriwutpokin
Guru
Guru
Posts: 3792
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

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

#2

Post by puriwutpokin »

ควรแนบตัวอย่างไฟล์ที่ เป็นปัญหามาด้วยครับ จะได้ทดสอบได้ครับ
:shock: :roll: :D
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#3

Post by noona »

puriwutpokin wrote: Thu Oct 25, 2018 7:27 pm ควรแนบตัวอย่างไฟล์ที่ เป็นปัญหามาด้วยครับ จะได้ทดสอบได้ครับ
แนบไฟล์มาแล้วค่ะ รบกวนด้วยนะคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#4

Post 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
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#5

Post 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
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#6

Post by snasui »

:D แบบเดิมใช้ไม่ได้เพราะเขียนไม่ถูกต้องครับ

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

กรณีมีการแก้ไขข้อมูลเดิม และต้องการบันทึกลงที่เดิมก็ควรจะทำได้ด้วยผมจึงกำหนดตัวแปรเข้าไปกำกับ ให้ผู้ใช้ตอบว่าจะบันทึกการแก้ไขข้อมูลเดิมหรือไม่ หากไม่ก็จะไม่บันทึกทับข้อมูลเดิมเช่นนี้เป็นต้นครับ
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#7

Post by noona »

User Form แบบนี้หากมีการแชร์ไฟล์ให้ user เข้ามาใช้งานจะสามารถใช้พร้อมๆกันได้หรือเปล่าคะ

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

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

กรณีมีการแก้ไขข้อมูลเดิม และต้องการบันทึกลงที่เดิมก็ควรจะทำได้ด้วยผมจึงกำหนดตัวแปรเข้าไปกำกับ ให้ผู้ใช้ตอบว่าจะบันทึกการแก้ไขข้อมูลเดิมหรือไม่ หากไม่ก็จะไม่บันทึกทับข้อมูลเดิมเช่นนี้เป็นต้นครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#8

Post by snasui »

:D ไฟล์ที่มี Macro ไม่รองรับการ Shared จึงไม่สามารถ Shared ให้ใช้ได้พร้อมกันหลาย ๆ คนครับ
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#9

Post by noona »

ขอบคุณค่ะอาจารย์ อาจารย์หมายถึง Shared Workbook ใช่ไหมค่ะ พอจะมีวิธีไหนแนะนำหรือไม่คะ ตั้งใจว่าเมื่อทำเสร็จแล้วอยากจะแชร์ไฟล์จากเครื่องตัวเองแล้วให้ให้ User เข้ามาใช้ไฟล์นี้เพื่อแก้ไขข้อมูลของตัวเองค่ะ

ขอถามอาจารย์เพิ่มเติมนะคะ เวลาใช้งานถ้า hide sheet data ที่เป็นฐานข้อมูลไว้ ทำให้ค้นหาข้อมูลไม่ได้ ไม่ทราบว่าต้องแก้ยังไงคะ
(ไม่ต้องการโชว์ Data เวลาใช้งาน อยากให้เห็นแต่ Form ค่ะ)
snasui wrote: Wed Oct 31, 2018 9:24 pm :D ไฟล์ที่มี Macro ไม่รองรับการ Shared จึงไม่สามารถ Shared ให้ใช้ได้พร้อมกันหลาย ๆ คนครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#10

Post by snasui »

:D ไฟล์ที่มี Macro ไม่มีวิธีแก้ให้ Shared Workbook ได้ครับ

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

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

#11

Post 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 หรืออื่น ๆ ได้ตามความจำเป็น
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#12

Post by snasui »

:D แนบไฟล์นั้นมาพร้อมทั้งไฟล์ปลายทาง อธิบายสิ่งที่ต้องการว่าจะทำอะไร ต้องกรอกค่าทดสอบใดบ้าง คลิกปุ่มไหน ผลลัพธ์ที่ถูกต้องจะต้องเป็นอย่างไร ที่ทำมาแล้วติดขัดตรง Procedure ใด บรรทัดใด ฯลฯ จะได้ช่วยดูต่อไปจากนั้นครับ
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#13

Post 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
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#14

Post 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
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#15

Post 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 แบบตัวอย่างในรูปที่อยู่ พอจะมีตัวอย่างให้ศึกษาดูบ้างไหมคะ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#16

Post by snasui »

:D ตอนบันทึกไม่ต้องเขียนให้เปิดไฟล์ขึ้นมาใหม่ เพราะเปิดอยู่แล้วตอนค้นหา

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

ListBox ตามภาพที่ถามเหมือนจับภาพมาจากเว็บ การสร้าง ListBox ก็แค่เพิ่ม ListBox เข้าไปครับ จะให้เหมือน Web เสียเลยทีเดียวก็คงไม่ได้ หากจะพยายามปรับแต่งก็พอจะพอใกล้เคียง แต่น่าจะเป็นเรื่องที่ไม่จำเป็นนัก ให้มันทำตาม Requirement ให้ครบก็พอแล้วครับ
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#17

Post by noona »

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

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

ListBox ตามภาพที่ถามเหมือนจับภาพมาจากเว็บ การสร้าง ListBox ก็แค่เพิ่ม ListBox เข้าไปครับ จะให้เหมือน Web เสียเลยทีเดียวก็คงไม่ได้ หากจะพยายามปรับแต่งก็พอจะพอใกล้เคียง แต่น่าจะเป็นเรื่องที่ไม่จำเป็นนัก ให้มันทำตาม Requirement ให้ครบก็พอแล้วครับ
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3792
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

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

#18

Post by puriwutpokin »

ตอนรันก็ปกตินะครับ ได้ใช้คำสั่งเปิดไฟล์ไว้ด้วยหรือไม่ครับ
:shock: :roll: :D
noona
Member
Member
Posts: 18
Joined: Thu Oct 04, 2018 8:57 pm

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

#19

Post by noona »

ไม่ได้ใช้ค่ะ ต้องการค้นหาแล้วบันทึกกลับที่เดิมค่ะ

ปัญหาในตอนแรกคือ ใช้คำสั่งเปิดไฟล์ด้วยทำให้ฐานข้อมูลเด้งขึ้นมาตอนกดบันทึก ไม่ต้องการให้เด้งขึ้นมาจึงเอาคำสั่ง Open ออก ไม่แน่ใจว่าทำตรงไหนผิดจึงเกิด Error ตามรูปค่ะ
puriwutpokin wrote: Mon Nov 19, 2018 12:34 pm ตอนรันก็ปกตินะครับ ได้ใช้คำสั่งเปิดไฟล์ไว้ด้วยหรือไม่ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#20

Post by snasui »

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