แสดงกระทู้

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 - PNR

หน้า: 1 ... 42 43 44 [45] 46
793
ห้อง MS Access / : วิธีการ Freeze Page Header ใน report
« เมื่อ: 30 ส.ค. 62 , 10:22:53 »
ลองดูวิธีนี้นะครับ

ให้ดูการกำหนด Format (รูปแบบ) ของรายงานหลัก และ รายงานที่จะทำหัวของรายงาน นะครับ
ส่วนโค้ดก็มีไม่เยอะครับ เป็นการใช้ Move , SelectObject เข้ามาช่วย

794
=[add] & " " & IIF(([moo])IsNull," ",("ม."& " " & [moo]))"& " " & [tumbol]    ไม่รู้ผิดตรงไหนครับ


น่าจะแบบนี้คับ

=[add] & " " & IIf(IsNull([moo])," ","ม." & " " & [moo] & " " & [tumbol])

แต่จากเงื่อนไขนี้ Add จะยังแสดงนะครับ เพราะไม่ได้เอามาตั้งเงื่อนไข แต่หมู่กับตำบลไม่แสดงถ้า moo เป็นค่าว่าง

795
ผมสมมุติ Combobox ค้นหาชื่อ Cb_UserAge นะครับ
ใส่โค้ด Event AfterUpdate ดังนี้

Private Sub Cb_UserAge_AfterUpdate()
    Me.Filter = "[Age]=" & Me.Cb_UserAge
    Me.FilterOn = True
End Sub

หมายเหตุ Age คือ ชื่อฟิลล์ที่เราต้องการกรอง ครับ

796
  :cry: :cry:(มือใหม่หัดใช้โปรแกรม) ขั้นตอนการสร้าง Table Design และ Form Design ที่ถูกต้อง คือ ต้องการสร้างฐานข้อมูล ใบ Job Order เพื่อนำมาใช้ในระบบ บริษัท ได้ ทำการสร้าง Form Design แล้ว แต่พอมา กดดูแบบ กดคลิกเมาไปที่ Form ที่บันทึกแล้วที่อยู่แทบข้างซ้ายมือ มันขึ้นแต่ช่องข้อความมาและมีข้องความว่า #Name แต่ข้อมูลที่เราป้อนเข้าไปมันไม่ขึ้น  แต่ถ้าเรากดเข้าไปที่ Design View มันจะขึ้นปกติแบบที่เราออกแบบไว้ ไม่ทราบว่าเราใส่อะไรผิดหรือป่าว

ขึ้น #Name? แบบนี้หรือเปล่าครับ ถ้าใช่
เกิดจากการกำหนด แหล่งระเบียน ไม่ถูกต้อง ในตัว Controlครับ เช่นมีการกำหนด =................ ใน แหล่งระเบียนไม่ถูกต้องเวลารันฟอร์มเลยขึ้น Error #Name?
มีรูปหน้า Desize และ ตอนรัน Forms หรือเปล่า

797
สมมุติผมมีฟิลล์ ID / Close / Field1 / Field2 / Field3
มีตารางชื่อ Table1
ที่ปุ่มสีเขียวผมก็ใส่โค้ดไปว่า

โค๊ด: [Select]
Me.RecordSource = "SELECT Table1.ID, Table1.Close, Table1.Field1, Table1.Field2, Table1.Field3  FROM Table1 WHERE (((Table1.Close)=False));"

พอเรากด ติ๊กที่ Checkbox Close แล้วข้อมูลจะหายไปครับ

798
เงื่อนไข หลังจาก Close  หรือ Delete เป็นแบบไหนครับ

Form แบบ continuous และต้องการใช้ Checkbox เลือกข้อมูลแบบนี้เราอาจจะสร้าง Field Close / Field Delete เพิ่มในตาราง
แล้ว Bound Field ให้กับ Checkbox ด้วย ก็จะสามารถคลิ๊กได้ทีละอันแล้วคับ

หรือลองอธิบายความต้องการเพิ่มเติมหน่อยครับว่า ทำ Checkbox นี้ต้องการกำหนดให้ Record นั้นเป็นอย่างไร

799
ต้องตั้งค่าภาษาของเครื่องครับ ต้องให้ซัพพอร์ต ภาษาไทย ด้วยครับ
ไปตั้งค่า ตรง regional and language options ดูคับ

หรือกด Start > RUN > ใส่ intl.cpl > regional and language options > advance > language for non-Unicode programs เลือก thai และ  เปลี่ยน system locale เป็น Thai  > standard and format เป็น thai แล้ว reboot เครื่องใหม่ดูครับ

หรือให้ตั้งค่าเลียนแบบเครื่องที่เปิดใช้งานได้อยู่แล้วครับ

800
ขอโทษนะคะ รบกวนอีกซักรอบนะคะ คือ ลองเเก้ดูเเล้ว มันไม่ได้อ่ะค่ะ สงสัยจะเขียนอะไรผิด เเหะๆ >..<

ของคุณน่าจะกำลังหาวิธีเลือกข้อมูลจาก Combobox แล้วให้แสดงใน Textbox ใช่ไหมครับ
ลองดูตัวอย่างนี้ครับ

801
จาก Combobox แสดง ID / รายการ

ถ้าต้องการให้ textbox แสดงรายการให้กำหนด สถานะ AfterUpdate เป็นแบบนี้ครับ

Private Sub ComboboxName_AfterUpdate()
Me.TextboxName = Me.ComboboxName.Column(1)
End Sub


รายการก็จะแสดงที่ Textbox แทนที่ ID แล้วครับ

802
ไม่รู้ว่าแบบนี้หรือเปล่านะครับ
ถ้าเป็นการอ้างอิงวันที่ไปใส่ ลองวิธีนี้ดูครับ


ผมสมมุติ textbox ชื่อตามในรูปนะครับ
โค๊ด: [Select]
Private Sub DtDateBorrow1_AfterUpdate()
If Not IsNull(Me.DtDateBorrow1) Then
Me.DtDateBorrowBack = Me.DtDateBorrow1
Me.DtDateBorrowOut = Me.DtDateBorrow1
End If
End Sub

803
Zone มีทั้ง ตัวเลข และ ตัวอักษร ลองใช้วิธีนี้ดูครับ

804
น่าจะแบบนี้ครับ

805
น่าจะเพิ่มผิดตรงไหนสักจุดครับ Inbox มาครับ

ID กำหนด DATA TYPE เป็น text หรือเปล่าครับ
ปกติตรงนี้ผมกำหนดเป็น Number ครับ

ถ้าเป็น Text ใช้ Cint แปลงเป็น ตัวเลขก่อนคับ

ถ้าข้อมูล ID NO เป็น Text ลองใช้การแปลง Text เป็นตัวเลข ก่อน โดยผมสร้าง QryTable1 ขึ้นมาแสดงข้อมูลของ Table1 นะครับ

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

806
ใช้การ Running Number Query มาช่วยก็ได้คับ
วิธีทำ 1 สร้างคิวรี่ชื่อ QryID ใส่โค้ดนี้
โค๊ด: [Select]
SELECT (Select count(*) From Table1 as a Where a.ID <= Table1.ID) AS [Running No], Table1.ID AS RID
FROM Table1;
2.ที่ RecordSource ของ Report ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
SELECT Table1.ID, Table1.[Product Name], Table1.Quantity, QryID.[Running No], *
FROM Table1 INNER JOIN QryID ON Table1.ID = QryID.RID;


3.สร้าง Textbox ขึ้นมาอีกอัน เอา Field RunningNo ใส่เข้าไปแล้วซ่อน textbox นี้ไว้นะครับ


4.ที่ textbox txtID ใส่โค้ดเป็นแบบนี้
โค๊ด: [Select]
=IIf([Running No] Mod 40=0,40,[Running No] Mod 40)
เท่านี้ก็จะรันลำดับอย่างถูกต้องแล้วคับ   :grin:

807
Union all มีแค่ 2 อันครับ
ส่วนเครื่องหมาย ; มีอันเดียวคืออันล่างสุด
การกำหนดชื่อของ Field หรือตารางถ้าชื่อมีช่องว่าง ให้ใส่เครื่องหมาย [ ] ตามที่อาจารย์สันติสุขบอกครับ

โค๊ด: [Select]
select Status,Cname,Surname,Member,Announce from [Buddist Association๗๖-๕๐]
Union all
select Status,Cname,Surname,Member,Announce from [Buddist Association๕๑-๖๐]
Union all
select Status,Cname,Surname,Member,Announce from [Buddist Association๖๑]
Order By Member,Announce;

808
ต้องการสั่ง lock หรือ ปิดการใช้งาน textbox ไหน ก็ลองใส่โค้ดตามนี้ดูครับ

Me.Textbox.Locked = True  หรือ False  'ล๊อกไม่ให้แก้ไขข้อมูลใน textbox แต่ Cursor ยัง Setfocus ได้
Me.Textbox.Enabled = False หรือ True  'ปิดการใช้งาน textbox และ Cursor ไม่สามารถ Setfocus ได้

ปกติผมจะสั่งทั้ง 2 อย่างเลยครับในกรณีต้องการปิด เพราะ textbox จะมี background สีเดิมไม่ใช่สีน้ำตาล ลองไปปรับใช้ดูครับ  :grin: :grin:

809
อ้างถึง
ไปวางที่ before update ฟอร์มหลัก
  ไม่ใช่ครับ ไปวางที่ subform ครับวางฟอร์มหลักมันจะถามกวนใจแน่นอน ความต้องการของเราคือ SubForm ครับ กดมุมมองออกแบบของ Subform เลือก Event Before Update ของSubForm ครับ

หรือถ้าต้องการตรวจสอบว่าถ้าป้อนข้อมูลที่ textbox ลำดับสุดท้ายหรือยัง
ก็เช็ค ได้เหมือนกันเช่น
Private Sub Form_BeforeUpdate(Cancel As Integer)
IF isnull(Me.txtLasttextbox) then
MsgBox "กรุณากรอกข้อมูลให้ครบถ้วนก่อน!!!", vbInformation, "แจ้งเตือน"
Cancel = true
Else
Cancel = False
End If
End Sub

หรือ ถ้าต้องการเช็คว่าทุก Control ป้อนครบแล้วหรือยัง ถ้า Control ไหนไม่ได้กรอกก็จะแจ้งเตือนให้ไปกรอก Control นั้นๆ ครับ

Private Sub Form_BeforeUpdate(Cancel As Integer)
IF isnull(Me.textbox1) then
MsgBox "กรุณากรอกข้อมูล textbox1 ให้ครบถ้วนก่อน!!!", vbInformation, "แจ้งเตือน"
Cancel = True
elseif isnull(Me.textbox2) then
MsgBox "กรุณากรอกข้อมูลtextbox2 ให้ครบถ้วนก่อน!!!", vbInformation, "แจ้งเตือน"
Cancel = True
elseif isnull(Me.textbox3) then
MsgBox "กรุณากรอกข้อมูลtextbox3 ให้ครบถ้วนก่อน!!!", vbInformation, "แจ้งเตือน"
Cancel = True
elseif isnull(.........ฯลฯ.......) then
MsgBox "กรุณากรอกข้อมูลtextboxฯลฯ ให้ครบถ้วนก่อน!!!", vbInformation, "แจ้งเตือน"
Cancel = True
Else
Cancel = False
End If
End Sub

โค้ดนี้วางใน Subform นะครับท่าน

810
ผมมีฟอร์มบันทึกขาย โดยมีส่วนที่เป็น sub-forms มักจะเผลอบ่อยๆๆ save record ขณะป้อนข้อมูล โดยที่บันทึกรายการสินค้าใน sub-forms ไม่เสร็จ  ป้องกันอย่างไรดีครับ
ใช้ Event BeforeUpdate ก็ได้คับ
โดยสร้าง msgbox สอบถามว่าต้องการบันทึกหรือไม่
ตัวอย่างนะครับ เมื่อกดปุ่มบันทึก
โค๊ด: [Select]
Private Sub Command3_Click() 'ปุ่มบันทึกไว้บนฟอร์มหลัก
On Error Resume Next
DoCmd.RunCommand acCmdSaveRecord
End Sub

ก่อนบันทึกจะผ่าน Event Before ครับ เอาโค้ดนี้วางไว้ที่ Subform

โค๊ด: [Select]
Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("ต้องการบันทึกหรือไม่", vbYesNo + vbQuestion, "สอบถาม") = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub

ถ้าตอบ Yes ก็จะบันทึก
ถ้าตอบ No ก็จะละเว้นการบันทึกไว้ก่อน จนกว่าจะตอบ Yes ครับ

หน้า: 1 ... 42 43 44 [45] 46