: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 แล้ววางข้อมูลใน Database)

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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Database)

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#41

by scofiledz » Mon Oct 10, 2011 1:13 am

พรุ่งนี้ผมจะสอบโปรเจคแล้วครับ ท่านอาจารย์^^

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#40

by scofiledz » Sat Aug 06, 2011 3:19 pm

:D ขอติดตามกระทู้นี้ครับ เป็นแนวในการสร้างโปรแกรม ขึ้นเองในบริษัทได้เลย

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#39

by zronous » Fri Aug 05, 2011 6:03 pm

ครับ เดี๋ยวผมขอลองทำดูก่อนครับ

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#38

by snasui » Fri Aug 05, 2011 12:18 pm

zronous wrote:อาจารย์ครับผมงงมากเลย ผมสั่งอาหารวันที่จะเป็น 5/8/2554 แต่พอไปดูในรายงานประจำเดือนทำไมมันกลายเป็น 8/5/2554 ครับ
ลองไปตรวจสอบการตั้งค่าใน Regional and language ครับ สำหรับ Windows XP เข้าตามนี้ครับ http://topicstock-tech.pantip.com/tech/ ... 600.html#6

ส่วน Code ที่ผมส่งไป ก่อนที่จะโพสต์ตอบกระทู้ผมทดสอบแล้วทำงานได้ครับ สู้ ๆ เช่นกันครับ :mrgreen:

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#37

by zronous » Fri Aug 05, 2011 12:00 pm

อาจารย์ครับผมงงมากเลย ผมสั่งอาหารวันที่จะเป็น 5/8/2554 แต่พอไปดูในรายงานประจำเดือนทำไมมันกลายเป็น 8/5/2554 อ่ะครับ

แล้วก็โค้ดข้างล่าง ตามที่อาจารย์ให้มา ผมแก้ยังไงมันก็ไม่สามารถเรียกดูข้อมูลได้ครับ หรืออาจจะเกี่ยวกับวันที่ข้างบนรึเปล่า
Private Sub btnShow_Click()
Dim rt As Range, rs As Range, rsall As Range
Dim s As String, RowSrc As String, rtp As Range
s = Application.Text(Date, "dดดดดbb")
Worksheets("Temp").Range("A:I").ClearContents
With Workbooks("รายงานประจำเดือน.xlsx").Worksheets(s)
Set rsall = .Range("C2", .Range("C" & Rows.Count).End(xlUp))
End With
For Each rs In rsall
If ob1.Value = True Then
If rs = CLng(Me.txtTable) And CLng(rs.Offset(0, -2)) = CLng(Date) _
And rs.Offset(0, 6) = Me.ob1.Caption Then
Set rt = ThisWorkbook.Worksheets("Temp") _
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
rs.Offset(0, -2).Resize(1, 9).Copy
rt.PasteSpecial xlPasteValues
End If
ElseIf ob2.Value = True Then
If rs = CLng(Me.txtTable) And CLng(rs.Offset(0, -2)) = CLng(Date) _
And rs.Offset(0, 6) = Me.ob2.Caption Then
Set rt = ThisWorkbook.Worksheets("Temp") _
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
rs.Offset(0, -2).Resize(1, 9).Copy
rt.PasteSpecial xlPasteValues
End If
End If
Next rs
With Worksheets("Temp")
Set rtp = .Range("A2", .Range("I" & Rows.Count).End(xlUp))
End With
RowSrc = "Temp!" & rtp.Address
Me.ListBoxShow.RowSource = RowSrc
End Sub

Private Sub UserForm_Initialize()
Me.lblDate = Date
Me.ListBoxShow.RowSource = ""
With Application
Me.Width = .Width
Me.Height = .Height
Me.Top = .Top
Me.Left = .Left
End With
End Sub
Attachments
รายงานประจำเดือน.xlsx
(16.72 KiB) Downloaded 34 times
Form.xlsm
(252.05 KiB) Downloaded 44 times

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#36

by zronous » Fri Aug 05, 2011 12:20 am

ขอบคุณมากครับ ผมจะลองทำดูครับ

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#35

by scofiledz » Fri Aug 05, 2011 12:13 am

:D :D สุดยอดเลย ครับ แนะเป็นแนวทางให้คนอื่น ทำเป็น Project ต่อได้เลย นะครับ

ชอบเว็ปนี้จริงๆ สู้ๆครับ อาจารย์ ^_^

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#34

by snasui » Thu Aug 04, 2011 10:41 pm

:lol: SQL กับ VBA มันคนละ Concept ครับ

ลักษณะความแตกต่างเปรียบเทียบเพื่อให้เห็นภาพชัด
SQL : ที่ตู้ A ต้องการกาแฟซองสีเขียว จะได้กาแฟพร้อมดื่ม
VBA : ไปที่ตู้ A, เปิดตู้ A, หยิบกาแฟซองสีเขียว, ฉีกซองกาแฟ, หยิบถ้วยกาแฟ, เทกาแฟใส่ถ้วย, นำถ้วยไปรองน้ำร้อน, กดน้ำร้อน, หยิบช้อน, คนกาแฟในถ้วย, ยกถ้วยกาแฟ, ดื่มกาแฟ

ผมปรับปรุงไฟล์มาให้ใหม่ ในไฟล์ Form เพิ่ม Sheet Temp เพื่อรองรับข้อมูล และใน Userform เปลี่ยน Label เป็น ListBox ลองดูไฟล์แนบประกอบครับ

Code: Select all

Private Sub btnShow_Click()
Dim rt As Range, rs As Range, rsall As Range
Dim s As String, RowSrc As String, rtp As Range
s = Application.Text(Date, "dดดดดbb")
Worksheets("Temp").Range("A:I").ClearContents
With Workbooks("รายงานประจำเดือน.xlsx").Worksheets(s)
    Set rsall = .Range("C2", .Range("C" & Rows.Count).End(xlUp))
End With
For Each rs In rsall
    If ob1.Value = True Then
            If rs = CLng(Me.TextBox1) And CLng(rs.Offset(0, -2)) = CLng(Date) _
                And rs.Offset(0, 6) = Me.ob1.Caption Then
                Set rt = ThisWorkbook.Worksheets("Temp") _
                     .Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
                rs.Offset(0, -2).Resize(1, 9).Copy
                rt.PasteSpecial xlPasteValues
            End If
      ElseIf ob2.Value = True Then
            If rs = CLng(Me.TextBox1) And CLng(rs.Offset(0, -2)) = CLng(Date) _
                And rs.Offset(0, 6) = Me.ob2.Caption Then
                Set rt = ThisWorkbook.Worksheets("Temp") _
                    .Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
                rs.Offset(0, -2).Resize(1, 9).Copy
                rt.PasteSpecial xlPasteValues
            End If
       End If
Next rs
With Worksheets("Temp")
    Set rtp = .Range("A2", .Range("I" & Rows.Count).End(xlUp))
End With
RowSrc = "Temp!" & rtp.Address
Me.ListBox1.RowSource = RowSrc
End Sub

Private Sub UserForm_Initialize()
Me.lblDate = Date
Me.ListBox1.RowSource = ""
With Application
    Me.Width = .Width
    Me.Height = .Height
    Me.Top = .Top
    Me.Left = .Left
End With
End Sub
Attachments
Form.xlsm
(248.27 KiB) Downloaded 34 times

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#33

by zronous » Thu Aug 04, 2011 12:23 pm

Private Sub btnShow_Click()
Dim s As String
s = Application.Text(Date, "dดดดดbb")
With Workbooks("รายงานประจำเดือน.xlsx").Worksheets(s)
.lblShow.caption = VLOOKUP(txtTable.caption, lblDate , ob1.caption)

End Sub
ประมาณนี้รึเปล่าครับ เรียกดูจาก รายงานประจำเดือน โดยเมื่อกรอกข้อมูลในช่อง txtTable และ คลิกที่ ob1 กดปุ่ม เรียกดู ก็จะโชว์ข้อมูลตามที่ต้องการ วันที่ เวลา โต๊ะ รายการอาหาร จำนวน ราคา

ถ้าเป็น Sql ก็จะ Select* form รายงานประจำเดือน Where โต๊ะ=txtTable , Date=lblDate , สถานะ=รอชำระเงิน

ช่วยทีครับ

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#32

by snasui » Thu Aug 04, 2011 6:35 am

:D ลองพยายามเขียน Code สำหรับ Case นี้มาดูก่อนครับ จะได้เห็นว่าได้พยายามแล้ว ติดขัดตรงไหนก็ค่อยมาถามต่อครับ ไม่เช่นนั้นก็จะกลายเป็นว่าให้ผมทำ Project หรือทำงานให้ ซึ่งไม่ควรจะเป็นเช่นนั้นครับ :mrgreen:

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#31

by zronous » Wed Aug 03, 2011 10:08 pm

อาจารย์ครับ จากไฟล์ข้างบนผมอัพใหม่ให้แล้ว ในไฟล์Form ปุ่มเรียกดูข้อมูล
ผมต้องการ ดึงข้อมูลมาจากไฟล์ รายงานประจำเดือน.xlsx ชีทวันที่เครื่อง โดยที่ดูข้อมูลจาก เบอร์โต๊ะ วันที่ แล้วก็สถานะ รอชำระเงิน โดยอ้างอิงจาก3ข้อนี้ แล้วกดปุ่ม เรียกดู ข้อมูลทั้งหมด ก็จะโชว์ใน lblShow ครับ

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#30

by snasui » Wed Aug 03, 2011 7:39 pm

:D เพิ่มบรรทัดนี้เข้าไปครับ

Code: Select all

rTemp.Offset(, 4) = "รอชำระเงิน"
ตัวอย่าง Code จะได้เป็นตามด้านล่าง

Code: Select all

Private Sub txtB1_Change()
Dim r As Range
Dim rTemp As Range
On Error Resume Next
Set r = Workbooks("ฐานข้อมูล.xlsx").Worksheets( _
            "อาหาร").Range("F2:G7")
Set rTemp = Workbooks("รายงานประจำเดือน.xlsx").Worksheets( _
            "Temp").Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
With FormMenu.MultiPage1.Pages("Page5")
    If .txtB1 = "" Then
        .lblB1 = ""
        rTemp.Offset(-1, 0).EntireRow.ClearContents
    Else
        .lblB1.Caption = .txtB1.Text * Application.VLookup("เนื้อผัดพริกไทยดำ", r, 2, 0)
        rTemp = "เนื้อผัดพริกไทยดำ"
        rTemp.Offset(, 1) = txtB1.Text
        rTemp.Offset(, 2) = .lblB1.Caption
        rTemp.Offset(, 4) = "รอชำระเงิน"
        rTemp.Offset(, -4) = FormMenu.lblDate.Caption
        rTemp.Offset(, -3) = FormMenu.lblTime.Caption
        rTemp.Offset(, -2) = FormMenu.cboTable.Text
        rTemp.Offset(, -1) = FormMenu.txtMember.Text
    End If
End With
End Sub

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#29

by zronous » Wed Aug 03, 2011 2:20 pm

ในไฟล์Form สั่งอาหารเมื่อบันทึกข้อมูล ข้อมูลทั้งหมดจะถูกเก็บใน ไฟล์รายงานประจำเดือน โดยเมื่อข้อมูลถูกบันทึกลงไป อยากให้ตรงช่อง I จะขึ้นข้อความว่า รอชำระเงิน
คือ จะมีกี่รายการก็ให้แสดงว่า รอชำระเงิน ทั้งหมดครับ
Attachments
ฐานข้อมูล.xlsx
เปิดไว้เพื่อที่จะได้คำนวนราคาอาหาร
(15.88 KiB) Downloaded 32 times
รายงานประจำเดือน.xlsx
อัพใหม่แล้ว
(18.33 KiB) Downloaded 19 times
Form.xlsm
อัพใหม่แล้ว
(254.22 KiB) Downloaded 24 times

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#28

by zronous » Wed Aug 03, 2011 12:33 pm

ขอบพระคุณมากครับ

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#27

by snasui » Wed Aug 03, 2011 6:26 am

:D กรณีต้องการให้ Userform เต็มจอ ระบุวันที่และเวลาสามารถปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Private Sub UserForm_Initialize()
Dim i As Integer
Workbooks("ฐานข้อมูล.xlsx").Worksheets("Temp").Range("A2:H" & Rows.Count).ClearContents
For i = 1 To 50
    FormMenu.cboTable.AddItem i
Next i
    Me.lblDate = Date
    Me.lblTime = Time
With Application
    Me.Width = .Width
    Me.Height = .Height
    Me.Top = .Top
    Me.Left = .Left
End With
End Sub

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#26

by zronous » Tue Aug 02, 2011 9:16 pm

zronous wrote:ถามหน่อยครับ โค้ดข้างล่างนี่เป็นโค้ดเรียกดูวันที่จากLabel แต่ต้องคลิกก่อนถึงจะโชว์วันที่ แต่ผมต้องการให้เปิดFormมาแล้วมันโชว์วันที่เลย ต้องแก้ตรงไหนครับ
Private Sub lblDate_Click()
FormMenu.lblDate = Date
End Sub
อีกข้อนึงครับ อยากจะให้Form ของเราเป็นแบบ Full scr เต็มจอ ต้องปรับที่ไหนครับ

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#24

by snasui » Tue Aug 02, 2011 2:50 pm

:D การบันทึกข้อมูลลงฐานข้อมูลแบบแยกชีทนั้นยุ่งยากลำบากในการใช้งานครับ หากต้องการจะออกบิลหรือ Report ก็ต้องมาดูว่าเป็นของวันไหน ลูกค้ารายใด เพื่อจะได้ไปดึงข้อมูลมาถูกต้อง แต่การจะดูว่าขายให้ลูกค้ารายใดในวันไหนบ้างจะลำบากครับ ผมจึงแนะนำไว้ตามนี้เพื่อให้สะดวกแก่การนำข้อมูลไปใช้
snasui wrote:สำหรับข้อ 5 ไม่ควรเก็บข้อมูลแยกชีทครับ ควรทำเป็น Database เรียงกันไปเลย การจะเรียกดูข้อมูลในภายหลังเมื่อทำเป็น Database แล้วสามารถทำได้ง่ายมาก

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#23

by zronous » Tue Aug 02, 2011 11:01 am

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

Re: รบกวนช่วยหน่อยครับ (กรอก Userform แล้ววางข้อมูลใน Databa

#22

by zronous » Sun Jul 31, 2011 9:18 pm

ขอบคุณมากครับ สำหรับแนวคิด และตัวอย่าง

Top