แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - ปิ่นณรงค์

หน้า: 1 ... 21 22 23 [24] 25 26 27 ... 32
415
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 22 พ.ค. 61 , 10:39:14 »
ลองดูอีกตัวอย่างนะครับ

บน Module

โค๊ด: [Select]
Global sNumber As Long
Global lastcall As Date
Function RunNumber(i) As Long
 If Now - lastcall > 1 / 60 / 60 / 24 Then
        lastcall = Now
        sNumber = -1
        End If
    sNumber = sNumber + 1
    RunNumber = sNumber
    End Function
ที่ฟอร์ม สร้าง Unbound Textbox ขึ้นมา 1 ตัว ใส่
=RunNumber([ชื่อของ Control ที่เราจะนับอันไหนก็ได้ในฟอร์มเลือกมา 1 ตัว])
แค่นี้ก็จะสามารถรันได้เหมือนกันครับ

หมายเหตุ
ถ้ารันฟอร์มแล้ว ตัวเลขที่รันตัวแรกไม่ใช้ 1 อาจจะเป็น 0 หรือ 2 ก็ให้เพิ่มลดที่ตรงนี้ได้เลยนะครับ
Global sNumber As Long
Global lastcall As Date
Function RunNumber(i) As Long
 If Now - lastcall > 1 / 60 / 60 / 24 Then
        lastcall = Now
        sNumber = -1 '-1 หรือ 0 หรือ 1 เลือกกำหนดได้
        End If
    sNumber = sNumber + 1
    RunNumber = sNumber
    End Function

416
ผมเลือกค่าจาก คอมโบบ็อก 3 ตัว จะได้ = เรคอร์ด(ID) ที่ตารางหลัก
จากนั้นอยากให้ฟอร์มที่ผมเลือก คอมโบบ็อกบันทึกค่า Id

คือตอนนี้ ข้อมูลที่นำมาลงทะเบียนมีจากทั้ง 2 ตารางใช่ไหมครับ คุณได้กำหนด ว่าเมื่อกรอกข้อมูลครบ 3 Combobox แล้ว ที่ Combobox ตัวที่ 3 ได้ตั้ง Event ให้สร้าง ID ขึ้นมา ซึ่งไอดีนั้นก็แสดงสำหรับ ของตารางแรก ผมสมมุติชื่อว่า ID1 นะครับ

ต่อไปวิธีการ
1.ให้สร้าง Textbox ขึ้นมาอีก 1 อันเพื่อ Bound กับ Field ID ของตารางที่ 2 เราสมมุติชื่อว่า ID2
2.ที่ Combobox ตัวที่ 3 ต่อจาก Event สร้างไอดีที่คุณสร้างขึ้นมา ต่อคำสั่งไปว่า

ID2 = ID1

เราก็จะได้ ID ทั้ง 2 ตารางแล้วครับ
หรือถ้าลองทำแล้วยังไม่ได้ ก็ลองส่งไฟล์มาครับผมแก้ให้


417
ที่ฟอร์มสร้าง ปุ่ม CommandBotton ขึ้นมา 2 ปุ่มครับ
ปุ่มที่1 ใส่คำสั่ง
Private Sub Command1_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "เตรียมเรียงชาย"
DoCmd.OpenQuery "เตรียมเรียงหญิง"
DoCmd.OpenQuery "รีเซตออโตนัมเบอร์"
DoCmd.OpenQuery "รีเซตออโต้หญิง"
DoCmd.OpenQuery "ลบข้อมูลเร็คคอร์ดลำดับหญิง"
DoCmd.OpenQuery "ลบเร็คคอร์ดเรียงลำดับชาย"
DoCmd.SetWarnings true
End Sub

ที่ปุ่มที่ 2

Private Sub Command2_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "เตรียมเลือกลำดับที่ต้องการชาย"
DoCmd.OpenQuery "เตรียมเลือกลำดับที่ต้องการหญิง"
DoCmd.SetWarnings true
End Sub


หมายเหตุ**
Command1_Click()
Command2_Click()
คือชื่อของปุ่ม CommandBotton นะครับ

418
ต้องการนำค่าที่ได้จาก Query (Id_PricePP) มาใส่ใน recordsource (Id_ราคากระดาษ) ได้หรือเปล่าครับ
Query

Record Source

ถ้าต้องการเพิ่มข้อมูล รายละเอียดข้อมูล ผมว่าทำบนฟอร์มดีกว่าครับ จากตัวอย่าง ข้อมูลหลักเป็น Autonumber และ Reletionship One to Many ถ้าคุณจะเพิ่มข้อมูล ในตารางหลัก คุณก็ต้องเพิ่ม ID ให้ตารางรองด้วย เพื้อกำหนดตารางรอง เช่่อมเป็นข้อมูลชุดเดียวกัน ลองส่งไฟล์มาครับผมทำตัวอย่างให้ดู

419
สวัสดีครับ ผมมี ฟิลล์ ในตาราง tblA ชื่อ คะแนน
มีเร็คคอร์ด 300 เร็คคอร์ด แต่ผมจะเลือก ลำดับที่มีคะแนนมาก 150 คนได้อย่างไรครับ


จากรูปภาพตัวอย่าง คุณกำหนด Field ใน tblA แล้วก็ไปเลือก Top ที่จะแสดง 150 รายการครับ
และที่ Expansion กำหนด ให้เรียงลำดับจาก มากไปหาน้อยครับ ถ้ามี Field อื่นๆ ที่จะนำมาแสดงด้วย เช่น จะแสดงว่า คะแนนมากสุดเรียงลำดับมามีชื่ออะไรบ้าง ก็สามารถดึงชื่อ และ นามสกุลลงมาได้เลยแล้วกำหนดเป็น Expansion เหมือนกันนะครับ

420
คือผมต้องการสร้างปุ่มไว้ Random ฟิวในเทเบิ้ลที่เป็น Text ต้องเขียนโค้ดอย่างไรบ้างครับ ขอบคุณมากครับผม

ผมไม่แน่ใจว่า จะเอาไปใช้ประโยชน์ในการทำงานของโปรแกรมตรงส่วนไหนนะครับ
แต่ผมได้ทำตัวอย่างการ random ข้อมูลที่เป็น text มาให้ดูเพื่อเป็นแนวทาง

ตัวอย่าง Code
Private Sub Command16_Click()
Randomize
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
With rs
If .EOF Then
MsgBox "ไม่พบข้อมูลในตารางที่ระบุ!!", vbOKOnly, "ระบบเช็คข้อมูล"
Else
.MoveLast
.AbsolutePosition = CLng(Rnd() * .RecordCount)
Me.text1 = !factory
End If
.Close
End With
Set rs = Nothing
End Sub

หมายเหตุ
table1 คือ ชื่อตารางที่ต้องการ Random
text1 คือ ชื่อ textbox ที่ต้องการแสดงผลการ Random
Factory คือชื่อ Field ในตารางที่ต้องการ นำมา Random

421
จากข้อมูลแล้ว
น่าจะมีการสร้างตาราง ความสัมพันธ์ประมาณนี้ครับ




422
ห้อง MS Access / : การใซ้ Checkbox ใน subform ของaccess
« เมื่อ: 16 พ.ค. 61 , 08:38:47 »
ทำให้แล้วครับ
เมื่อเปิดโปรแกรมมาให้ซ่อนรายการ
โค๊ด: [Select]
Private Sub Form_Current()
Call ShowList
End Sub
Sub ShowList()
If IsNull(Me.cb_GSP) Then
Me.Check20.Visible = False
Me.factory.Visible = False
Me.SteelID.Visible = False
Me.Adress.Visible = False
Me.PhoneNumber.Visible = False
Me.Size_Type.Visible = False
Me.Thickness.Visible = False
Me.Length.Visible = False
Me.weight.Visible = False
Me.Price.Visible = False
Else
Me.Check20.Visible = True
Me.factory.Visible = True
Me.SteelID.Visible = True
Me.Adress.Visible = True
Me.PhoneNumber.Visible = True
Me.Size_Type.Visible = True
Me.Thickness.Visible = True
Me.Length.Visible = True
Me.weight.Visible = True
Me.Price.Visible = True
End If
End Sub
Private Sub Image57_Click()
Call ShowList
End Sub

ตัวอย่างให้แสดงข้อมูลทั้งหมดอีกครั้ง และให้ cb_GSP เป็นค่าว่าง
โค๊ด: [Select]
DoCmd.ApplyFilter , " Size_Type like '*'"
Me.cb_GSP = Null

ผมได้ทำไอค่อนให้กดเพื่อ ซ่อนรายการให้ด้วยนะครับ ที่เป็นรูปดวงตา


ตัวอย่างด้านล่าง

423
ผมได้ทำตัวอย่างให้ใหม่นะครับ
ที่แก้ไปคือ
1.การค้นหาข้อมูล Size_Type ให้เลือกเสร็จแล้วกดค้นหา ถ้าต้องการแสดงข้อมูลทั้งหมดอีกครั้งให้ลบรายการออกแล้วกดค้นหา
2.เพิ่ม Check20 ถ้ากดติ๊กเลือกอยู่ก็จะปริ้น ส่วนที่ติ๊กเลือก
3.แก้ไขฟอร์มเป็น Continuous Forms
เพราะดูจากข้อมูลแล้วไม่มีความจำเป็นที่จะทำ Sub Form
ตัวอย่างด้านล่าง

4.ถ้าต้องการ เคลีย Checkbox เพื่อติ๊กเลือกใหม่ กดที่ปุ้ม ลบ นะครับ

424
ขอสอบถามเพิ่มเติมครับ ถ้าต้องการให้ ไดอะล็อกซ์บ๊อกซ์ ที่ขึ้นมาให้เลือกไฟล์ เราจำกำหนดให้เลือกได้เฉพาะไฟล์รูปภาพได้ไหมครับ

Private Sub Import_Click()
Dim f As Object
Set f = Application.FileDialog(3)
f.AllowMultiSelect = True
f.Filters.Clear
f.Filters.Add "Picture Files", "*.bmp;*.jpg;*.gif;*.png"

If f.Show Then
    For i = 1 To f.SelectedItems.Count
        sFile = filename(f.SelectedItems(i), sPath)
        Me.GetFileName = sFile
        Me.GetFilePath = sPath
    Next
End If
End Sub

อันนี้เป็นส่วนที่ต้องเพิ่มใหม่นะครับ
ตัวอย่างด้านล่าง

425
ขอสอบถามเพิ่มเติมครับ ถ้าต้องการให้ ไดอะล็อกซ์บ๊อกซ์ ที่ขึ้นมาให้เลือกไฟล์ เราจำกำหนดให้เลือกได้เฉพาะไฟล์รูปภาพได้ไหมครับ
ได้ครับกำหนดนามสกุลของประเภทรูป bmp jpg ประมาณนั้น เดี่ยวกลับไปแก้ให้ครับ

426

ไว้ผม กลับจากเล่นคอนเสริตคืนนี้ก่อน เดี่ยวทีมวิวไปทำให้ดูครับ

427
ผมสงสัยเกี่ยวกับชื่อตาราง List1,2,3 คืออะไรหรอ แล้วสร้างยังไงครับ

List1,2,3 นั้นไม่ใช่ตารางครับ เรียกว่า Query หรือ แบบสอบถาม
ใช้ในการประมวลผล หรือแสดงผล ปกติเราจะเก็บข้อมูลลงไปใน Table แต่ Table ไม่มีเครื่องมือในการประมวลผล ดังนั้น การวิเคราะห์ การคำนวณ
ต้องใช้คิวรี่ในการทำงาน และมีหน้าที่สำคัญ คือ คัดเลือกเฉพาะข้อมูลที่ต้องการ โดยกำหนด Expression หรือค่าที่ต้องการที่ Criteria.
ซึ่งถ้าสังเกตุทีละ Query จะเห็นได้ว่าผมได้กำหนด Criteria ให้ดึงข้อมูลเฉพาะที่เราเลือกจาก ชื่อ Combobox ตัวก่อนหน้า
ก่อนที่จะแสดงผลอันต่อไปนั้นเองครับ

428
พี่ผมต้องแก้ตัวไหนบ้างครับ ถ้าเป็นไปได้ผมขอตัวที่ใช้งานได้เลยได้ไหมครับ ผมต้องขอโทษจริงๆครับ ผมยังมือใหม่ในการใข้Accessครับ :smile:



จากที่เช็ค ที่มันขึ้นแจ้งเตือนนั้นเป็น การแจ้งเตือนว่า ขอบกระดาษเกินแต่ถ้ากด ok มันก็จะเปิดรายงานได้ปกติครับ

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

429
โปรแกรมที่พี่ส่งมา เวลาผมเลือกเล็กคอร์ดแล้วกดปุ่มเปิดฟอร์มต่อไปแล้วทำไมมันไม่ไปที่ฟอร์มออกรายงานอ่ะครับ มันเป็นเพราะอะไร เป็นเพราะพี่เขียนcodeไว้หรอครับ พอดีผมไม่เก่งเรื่องcodeสักเท่าไหร่  :smile:
ใช่คับใช้ คิวรี่ที่ตัวรายงานเหมือนตัวในฟอร์ม และ ใส่ code เปิดรายงายไว้คับ

430
แล้วถ้าเราจะดึงข้อมูลของ ราคาต่อรีม ในตาราง ราคากระดาษ มาด้วยโดยใช้เงื่อนไขเดียวกันกับ combobox ต้องทำยังไงครับ

ใส่คำสั่งเพิ่มเข้าไปเพื่อให้ ราคามาแสดงใน textbox ชื่อ PricePaper
โดยเราจะให้ เช็คทุก Combobox และ สามารถคำนวนราคาได้ เมื่อเราเลือก Combobox ใดๆ ก็ตาม ราคาจะเปลี่ยนให้

โค๊ด: [Select]
Sub GroupRecal()
Me.cbType.Requery
Me.cbSize.Requery
Me.cbBrand.Requery
Me.PricePaper = Me.cbBrand.Column(1)
End Sub

อธิบาย คำสั่ง Me.cbBrand.Column(1)

คือรายการของ Combobox Fieldที่ 2 เพราะ Column เริ่มจาก (0) ( 0 คือ Field แรก)


ใน Code ผม Group คำสั่งไว้ 1 ชุด เวลาจะเรียกใช้ ก็แค่ใส่
โค๊ด: [Select]
Call GroupRecal
ลองดูครับ

431
ใครพอจะมีวิธีอื่นๆอีกไหมครับ โดยใช้คิวรี่ในการสร้างเงื่อนไขครับ ขอบคุณมากครับผม
คำถามคือคุณจะสร้างตารางเพื่อสร้างโปรแกรม หรือต้องการจะสร้าง ID Number หรือ มีข้อมูลอยู่แล้ว ต้องการแยก เป็นหมวดหมู่ใหม่

ถ้าสองข้อหลัง ลองส่งไฟล์มาดูครับ
ถ้าข้อแรก ผมยกตัวอย่างการสร้างตาราง
การสร้างความสัมพันธ์ ของประเทศ จะต้องเริ่มจาก จังหวัด อำเภอ ตำบล หมู่บ้าน ลงไปเรื่อยๆ
ผมยังงงคำถามอยู่คับ

432
ผมเพิ่งมาหัดใช้ ms access แล้วได้งานเกี่ยวกับการล้อกอินแล้วแสดงฟอร์มที่มีข้อมูลของคนล้อกอินอยู้ในฟอร์ม การล้อกอินผมพอทำได้แล้ว แต่การดึงข้อมูลจากตารางมาแสดงนี่ ต้องทำไงเหรอครับ ไปใส่โค้ดตรงไหนเหรอครับ ในปุ่มหรือในฟอร์มครับ
คำสั่งที่จะทำให้ชื่อของUser หรือรายละเอียดของUserแสดงนั้นต้องระบุตารางและฟิลล์ ของ table USer คุณต้องอธิบายรายละเอียด ชื่อตารางและชื่อฟิลล์ด้วยคับ

หน้า: 1 ... 21 22 23 [24] 25 26 27 ... 32