auyzeed
กระทู้เก่าบอร์ด อ.Yeadram

 1,235   8
URL.หัวข้อ / URL
auyzeed

สวัสดีครับ คือ ต้องขอออกตัวก่อนนะครับว่าผมไม่มีความรู้เรื่อง Access เลย เเต่พองมงูๆ ปลาได้ดังนี้ครับ

มีปัญหาการทำใบกำกับภาษี เรื่องมีอยู่ว่าทำไม่ผมสั่ง พิมพ์ หรือ Previewer ข้อมูลในหน้า From ที่ผมสร้างขึ้นมาเเล้ว ตัวเลขที่เป็นตัวหนังสือ ไม่ยอมเเสดงออกมาใน Report ของผม ผมต้องใช้คำสั่งยังไงครับ ถึงจะเอาตัวอักษรมาเเสดงใน Report ได้ ผมใช้การดึง BahtText จาก Excel นะครับ ดังตัวอย่างที่เเนบมาครับ รบกวนผู้รู้ช่วยตอบทีครับ ขอบคุณล่วงหน้าสำหรับทุกคำตอบครับ


_________________________________________
Private Sub Command159_Click()
IsSaveClicked = True
    Me.Dirty = False
    MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
End Sub

Function ExcelBathtext(value As Double) As String
If value = 0 Then
ExcelBathtext = ""
Else
ExcelBathtext = WorksheetFunction.BahtText(value)
End If
End Function
Private Sub cmdBahtText_Click()
alphabet.value = ExcelBathtext(grant_tot.value)
End Sub



Private Sub Command71_Click()
DoCmd.OpenReport "invoice_report_001", acViewPreview, , "[invoiceid] = " & Me.invoiceid.value
alphabet.value = ExcelBathtext(grant_tot.value)
End Sub

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    If MsgBox("กรุณาบันทึกข้อมูล", vbQuestion + vbYesNo, "Save Record?") = vbYes Then
        IsSaveClicked = True
        Me.Dirty = False
        MsgBox "บันทึกข้อมูลเรียบร้อยแล้ว"
    Else
        IsSaveClicked = False
    End If
    Response = acDataErrContinue
End Sub

Private Sub Command63_Click()
DoCmd.RunCommand acCmdSaveRecord
MsgBox "ข้อมูลทำการบันทึกเรียบร้อยแล้ว", vbOKOly, "แจ้งสถานะบันทึก"
Me.Recalc
alphabet.value = ExcelBathtext(grant_tot.value)
End Sub

Private Sub Command72_Click()
On Error GoTo Err_Command72_Click


    DoCmd.GoToRecord , , acNewRec

Exit_Command72_Click:
    Exit Sub

Err_Command72_Click:
    MsgBox Err.Description
    Resume Exit_Command72_Click
    
End Sub

8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R17068
เเก้ไขครับ
2 @R17069

3 @R17070
4 @R17077
คุณเขียนว่า

DoCmd.OpenReport "invoice_report_001", acViewPreview, , "[invoiceid] = " & Me.invoiceid.value
เป็นการเปิดหน้ารายงาน

alphabet.value = ExcelBathtext(grant_tot.value)
แต่ตรงนี้คืออะไรครับ alphabet คือเท็กซ์บ็อกซ์บนรายงานหรือ ?
5 @R17078
alphabet ใช่เเล้วครับเป็นชื่อ Texbox ใน From ครับ

ตัวอย่าง
Private Sub Command63_Click()
DoCmd.RunCommand acCmdSaveRecord
MsgBox "ข้อมูลทำการบันทึกเรียบร้อยแล้ว", vbOKOly, "แจ้งสถานะบันทึก"
Me.Recalc
alphabet.value = ExcelBathtext(grant_tot.value)
End Sub

ที่ผมทำเเบบนี้เพราะตอนเเรกตัวอักษรมันไม่เเสดงอัตโนมัติ ผมเลยให้เเสดงเมื่อกดปุ่มบันทึกตัวอักษรถึงจะออกมาครับ เเต่พอสั่ง Priviewเเล้วตัวอักษรกลับไม่เเสดงใน Report ครับ รบกวนด้วยครับ
6 @R17079


ดังตัวอย่างครับ
7 @R17081
ทำไมถึงคิดว่ามันจะไปปรากฏบนรายงาน invoice_report_001 ให้โดยอัตโนมัติหล่ะครับ !!! มันไม่ไปให้นะครับ ในตัวรายงานเองจะต้องสั่งพิมพ์ค่านี้เองเหมือนกับที่ทำในฟอร์ม ถ้าเข้าใจไม่ผิด ส่วนที่แสดงจำนวนเงินเป็นตัวอักษรนี้อยู่บน Detail section ของรายงาน สมมติว่าชื่อ X   แล้วค่ายอมรวมของจำนวนเงินชื่อว่า Y

ดังนั้นให้ใส่โค้ดนี้ครับ

Private Sub Detail_Format(Cancel As Integer, PrintCount As Integer)
   x = ExcelBathtext(y)
End Sub

แล้วก็ใส่ฟังก์ชั่น ExcelBathtext รวมเข้ามาในตัวรายงานอีกครั้งด้วยนะครับ

Function ExcelBathtext(value As Double) As String
If value = 0 Then
ExcelBathtext = ""
Else
ExcelBathtext = WorksheetFunction.BahtText(value)
End If
End Function
8 @R17082
โอ้วๆ ถูกต้องเเล้วครับ
ขอบคุณมากครับ ได้เเล้วครับ ก่อนหน้านี้ก็ทำลักษณะนี้เเหละครับ มันไม่ออกเลยงงไปใหญ่เลย


คือตอนนี้ที่บริษัทใช้วิธีการเขียนใบกำกับภาษีนะครับ เลยจะช่วยลดเวลาการทำงานเขาเลยต้องเอา Access เข้ามาช่วย ก่อน ว่าจะเริ่มหัดเขียน PHP ให้เขาใช้งานจริงนะครับ ตัวนี้ให้ใช้ชั่วคราวก่อน

ขอบคุณอีกครั้งครับ ...
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2824s