แสดงกระทู้

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 ... 7 8 9 [10] 11 12
145

Private Sub Command477_Click()
me.dirty = false
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
End sub

ลืมใส่ =
ลองดูคับว่าได้ไหม

146
ลองแก้เป็นแบบนี้ครับว่าได้ไหม

Private Sub Command477_Click()
Me.Dirty False
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
End sub

147
Column นั้นเราอ้างอิงมาจากการกำหนด RowSource ของ Combobox ครับ

RowSouce ชื่อตรงนี้นะครับ


Column มาจากนี้ครับ


ให้สังเกตุว่า คอลัมน์ มี 2 อัน โดยกำหนด ID ไว้เป็นคอลัมน์แรก และ รายการเป็นคอลัมน์ที่สอง
โดย การนับคอลัมน์นั้นจะเริ่มนับจาก 0 ไป 1 , 2 , 3 , 4 , 5 , 6 ไปเรื่อยๆ
เราต้องการให้ textbox แสดง รายการหรือList เราเลยกำหนดให้ textbox = Combobox.Column(1) นั้นเอง

148
อ้างถึง
1. ผมต้องการทำเลขบอกลำดับด้านหน้า Record บนคล้าย Continuous Form คล้ายๆกับ Running Sum บน Report จะมีวิธีการทำอย่างไร? (ตามภาพ)

ขั้นตอนที่ 1 สร้าง Module เอา โค้ดนี้ใส่เข้าไป
โค๊ด: [Select]
Public Function RowNum(frm As Form) As Variant
On Error GoTo Err_RowNum
   
    With frm.RecordsetClone
        .Bookmark = frm.Bookmark
        RowNum = .AbsolutePosition + 1
    End With
   
Exit_RowNum:
    Exit Function
   
Err_RowNum:
    If Err.Number <> 3021& Then
        Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description
    End If
    RowNum = Null
    Resume Exit_RowNum
End Function
ขั้นตอนที่ 2 สร้าง textbox ชื่อ No ที่ ControlSource ใส่ ว่า =RowNum([Form])


ลำดับก็จะรันอัตโนมัติครับ


อ้างถึง
2. ผมทำช่องให้กรอกช่วงเวลาที่ต้องการค้นหา Record(Search by Date Rage) เอาไว้ครับ(ตามภาพ)
แก้โค้ดเป็นแบบนี้ดูครับ ใช้การกำหนด Sql แทน แก้ชื่อ Form1 เป็นชื่อฟอร์มของคุณด้วยนะครับ
โค๊ด: [Select]
Sub Search()
Dim Sql As String
 If IsNull(Me.txtDateFrom) Or IsNull(Me.txtDateTo) Then
    MsgBox "Please enter the date range", vbInformation, "Date Range Required"
    Me.txtDateFrom.SetFocus
    Sql = "SELECT * FROM qryTransactions ORDER BY qryTransactions.TransactionsDate;"
        Else
    Sql = "SELECT * FROM qryTransactions  WHERE (((qryTransactions.[TransactionsDate]) Between forms!Form1!txtDateFrom And forms!Form1!txtDateTo)) ORDER BY qryTransactions.TransactionsDate;"       
End If
        Me.Form.RecordSource = Sql       
End Sub

อ้างถึง
3. ผมต้องการให้แสดงผลลัพธ์ทั้งหมดที่ค้นหาได้ ตามภาพด้านบน จะมีแนวทางเขียนโค้ดอย่างไร
ผมสมมัติสร้าง textbox ไว้เก็บจำนวน Record ชื่อ txt_TotalRecordSearch
เวลาเราจะเรียกใช้ก็นำไปรวมกับ คำสั้งค้นหาวันที่ แบบนี้คับ

โค๊ด: [Select]
Sub Search()
Dim Sql As String
Dim FormRecCount  As Long
 If IsNull(Me.txtDateFrom) Or IsNull(Me.txtDateTo) Then
    MsgBox "Please enter the date range", vbInformation, "Date Range Required"
    Me.txtDateFrom.SetFocus
    Sql = "SELECT * FROM qryTransactions ORDER BY qryTransactions.TransactionsDate;"
        Else
    Sql = "SELECT * FROM qryTransactions  WHERE (((qryTransactions.[TransactionsDate]) Between forms!Form1!txtDateFrom And forms!Form1!txtDateTo)) ORDER BY qryTransactions.TransactionsDate;"       
End If
        Me.Form.RecordSource = Sql
        Me.txt_TotalRecordSearch.ControlSource = "=Count(No)"
End Sub

ตัวอย่างด้านล่างนะครับ


149
โค้ดนี้แต่เดิมอาจารย์ pizza_p แนะนำไว้ในกระทู้นี้ครับ

https://www.thai-access.com/index.php?topic=220.msg784

ถ้ามีตัวอย่าง ไฟล์ที่ออกรายงานแบบนั้่นได้ ผมก็จะสามารถแก้ไขให้ได้คับ

150
จุดที่ต้องทำเหมือนกันที่ Combobox คือ

1.การกำหนดเรียงลำดับจาก ID / ชื่อรายการ
โดย ID จะอยู่คอลัมน์แรก แล้วตามด้วย ชื่อรายการที่จะแสดง

2.การกำหนดรูปแบบหรือ Format ของ Combobox ที่เราจะเลือกรายการโดยกำหนด
จำนวนคอลัมน์ = 2
ความกว้างคอลัมน์ = 0ซม.;5ซม.


3.กำหนดการผูกคอลัมน์ไว้ = 1


โค้ดยังคงเป็นแบบเดิมนะครับ ลองแก้ไขตามนี้ดูครับ

หมายเหตุดูตรง แหล่งข้อมูลแถวดีๆนะครับ ต้องเรียงจาก ID ก่อน แล้วตามด้วยรายการ

151
สมมุติว่ามันไม่ยอมเซฟให้เรา ๆ ก็โกงๆมันหน่อยแบบนี้เลยครับ สมมุติ text1 , text2 เป็น default Value

คำสั่งที่ปุ่มเซฟ
Private Sub Save_Click()
If Me.NewRecord Then
Me.Text1 = Me.Text1
Me.Text2 = Me.Text2
DoCmd.RunCommand acCmdSaveRecord
End If
End Sub

152
อ่อคำนำหน้ากับชื่อติดกันตามนั้นเลยครับ

153
ใช้ IIF สร้างเงื่อนไขก็ได้คับ

เช่น
โค๊ด: [Select]
คำนำหน้าชื่อ: IIf([title]="MR","นาย") & IIf([title]="MISS","นางสาว") & IIf([title]="MRS","นาง")

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

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

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


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

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

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

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

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

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

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

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

158
สมมุติผมมีฟิลล์ 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 แล้วข้อมูลจะหายไปครับ

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

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

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

160
ต้องตั้งค่าภาษาของเครื่องครับ ต้องให้ซัพพอร์ต ภาษาไทย ด้วยครับ
ไปตั้งค่า ตรง 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 เครื่องใหม่ดูครับ

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

หน้า: 1 ... 7 8 9 [10] 11 12