Page 3 of 3

Re: ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Sun Nov 02, 2014 10:36 pm
by snasui
:D Code ที่เขียนมานั้นติดปัญหาอะไร ที่ต้องการจะแก้คือแก้อะไร แจ้งมาด้วยเสมอ ตอนนี้ UserForm1 ยังไม่สามารถดึงข้อมูลมาวางได้ตามค่าใน ComboBox1 แก้ตรงนี้ก่อนครับ

ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Mon Nov 03, 2014 10:39 am
by san02551
ตอนนี้ ผมดึงข้อมูลได้แถวเดียว ครับ
คือต้องการดึงข้อมูล เลขที่ จัดซื้อ 1 มาที่ Userform1 เพื่อแก้ไข ครับ
เลขที่จัดซื้อ 1 อาจมีหลายรายการ
ผลทำ sheets : Show ไว้ จะดึงจากตรงนั้น ก็มาแค่ แถวเดียวครับ

Re: ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Mon Nov 03, 2014 10:39 pm
by snasui
:D ตัวอย่าง Code การดึงข้อมูลมาแสดงใน Textbox ตามด้านล่างครับ

Code: Select all

PPrivate Sub ComboBox1_Change()
    Dim myRange As Range, r As Range
    Dim arrItem(9) As Variant, arrQ(9) As Variant
    Dim arrUnit(9) As Variant, arrPrice(9) As Variant
    Dim i As Integer, j As Integer
    arrItem(0) = "TextBox2": arrQ(0) = "TextBox3": arrUnit(0) = "TextBox4": arrPrice(0) = "TextBox5"
    arrItem(1) = "TextBox6": arrQ(1) = "TextBox7": arrUnit(1) = "TextBox8": arrPrice(1) = "TextBox9"
    arrItem(2) = "TextBox10": arrQ(2) = "TextBox11": arrUnit(2) = "TextBox12": arrPrice(2) = "TextBox13"
    arrItem(3) = "TextBox14": arrQ(3) = "TextBox15": arrUnit(3) = "TextBox16": arrPrice(3) = "TextBox17"
    arrItem(4) = "TextBox18": arrQ(4) = "TextBox19": arrUnit(4) = "TextBox20": arrPrice(4) = "TextBox21"
    arrItem(5) = "TextBox22": arrQ(5) = "TextBox23": arrUnit(5) = "TextBox24": arrPrice(5) = "TextBox25"
    arrItem(6) = "TextBox26": arrQ(6) = "TextBox27": arrUnit(6) = "TextBox28": arrPrice(6) = "TextBox29"
    arrItem(7) = "TextBox30": arrQ(7) = "TextBox31": arrUnit(7) = "TextBox32": arrPrice(7) = "TextBox33"
    arrItem(8) = "TextBox34": arrQ(8) = "TextBox35": arrUnit(8) = "TextBox36": arrPrice(8) = "TextBox37"
    arrItem(9) = "TextBox38": arrQ(9) = "TextBox39": arrUnit(9) = "TextBox40": arrPrice(9) = "TextBox41"
    With Sheets("Alldata")
        Set myRange = .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
    End With
    For j = 0 To 9
        Me.Controls(arrItem(j)).Text = ""
        Me.Controls(arrQ(j)).Text = ""
        Me.Controls(arrUnit(j)).Text = ""
        Me.Controls(arrPrice(j)).Text = ""
    Next j
    For Each r In myRange
        If CStr(r.Value) = Me.ComboBox1.Text Then
            Me.Controls(arrItem(i)).Text = r.Value
            Me.Controls(arrQ(i)).Text = r.Offset(0, 1).Value
            Me.Controls(arrUnit(i)).Text = r.Offset(0, 2).Value
            Me.Controls(arrPrice(i)).Text = r.Offset(0, 3).Value
            i = i + 1
            If i > 9 Then Exit For
        End If
    Next r
End Sub

Re: ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Thu Nov 13, 2014 9:04 pm
by san02551
เรียนอาจารย์ ที่เคารพ
ไม่รู้ผมตั้งคำถาม เข้าใจ หรือเปล่า
จากไฟล์ที่แนบ ครับ ผมต้องการรายงานข้อมูลตามนี้ แต่อยาก ไม่ต้องกลับไปดู หน้า export และ export_2 กลับไปมา ครับ
เพียงแต่มีปุ่มเรียกดูข้อมูล อยู่ใน sheets เดียวกันครับ

Re: ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Thu Nov 13, 2014 9:50 pm
by snasui
:D ทั้งสองชีทต่างกันอย่างไรครับ

Re: ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Fri Nov 14, 2014 6:22 am
by san02551
export จะดึงข้อมูล จาก month รายงานเป็นอำเภอ ตำบล
export_2 จะดึงข้อมูลจาก data4 เพื่อรายงานเป็นสภาพที่ดิน
จุดประสงค์ที่ต้องการ ครับ การรายงาน กับเตรียมฐานข้อมูล จะมีจำนวนฐานข้อมูลเพิ่มขึ้นเรื่อยๆ เพราะเราต้องการดึงข้อมูลแต่ละ column มาแสดง โดยใช้ฐานข้อมูลจาก data3 เช่น เราต้องการทราบข้อมูล เลขร.ว.12 ประเภทรังวัด ระวาง หมู่ที่(หลักฐานเดิม) บ้าน ตำบล อำเภอ จังหวัด รังวัดวันที่ ก็สามารถเลือกแสดงได้เพียง
sheets เดียว ครับ หรือทำหน้า export เดียว ครับ

Re: ป้องกันการกรอกข้อมูลซ้ำ UserForm

Posted: Fri Nov 14, 2014 10:44 am
by snasui
:D จากอธิบายมาเกียวข้องกับหัวข้อเดิมหรือไม่ครับ หากไม่ใช่ให้ตั้งกระทู้ใหม่

การจะมีปุ่มเรียกดูข้อมูลในชีทเดียวกันก็ต้องสร้างปุ่มขึ้นมาก่อน เขียน Code หรือเพื่อดึงข้อมูลมาแสดง

หากเป็น Code จะต้องเขียนมาเองก่อนติดแล้วค่อยถาม

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