แสดงกระทู้

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] 2 3 4
1
อุ๊ย! อุตส่าห์แอบดูเงียบๆ อยู่มุมห้อง :smile:
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

2
ขอบคุณครับ ที่ data type ทีแรกของผมเป็น Currency ครับ แต่พอเปลี่ยนเป็น Text แล้วก็ตรงกันครับขอบคุณนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

3
ขอบคุณมากเรยนะคะ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

4
&feature=youtu.be
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

5
ลองที่ให้มา ไม่ได้ครับ แต่คุ้นผมเคยทำไว้ที่ Excel ตอนนี้ทำได้แล้วครับโดยใช้แบบนี้ครับ
1*** วางไว้ใน Module
#If Win64 Then
    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
    Private Declare Function PlaySound Lib "winmm.dll" _
        Alias "PlaySoundA" (ByVal lpszName As String, _
        ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
    Call PlaySound("c:\windows\media\policesiren.WAV", _
      0, SND_ASYNC Or SND_FILENAME)
    SoundMe = ""
End Function

2**** วางที่โค้ดต้องการให้ดัง
 Dim wisroot As String
  Dim str1 As String
 
wisroot = Me.[QRCode].Value
  str1 = "[QRCodePCB]=" & "'" & wisroot & "'"
 
  If Me.[QRCode] = DLookup("[QRCodePCB]", "dbo_Laser40241CA", str1) Then
  SoundMe
  MsgBox "ข้อมูลซ้ำกัน กรุณาตรวจสอบ"
  Me.Undo
  Else
    End If
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

6
ผมแก้ไขได้แล้วครับ โดยโหลดตัว MSOUTL.OLB ไปวาง Program Files (x86)Microsoft Office2007Office12

ขอบคุณครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

7
เอา query ที่ทำได้ไปหาค่า max แล้ว group by id ,name ได้ไหมแบบนี้
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

8
ก่อนอื่นต้องขอขอบคุณอาจารณ์ทุกท่านนะครับ ที่ได้แก้ไขปัญหาต่างๆ ในการทำ Code  ....
สำหรับโพสนี้ ก็หวังว่าท่านที่ต้องการทำแบบผม กำลังมองหาวิธีการต่างๆนานา (เหมือนผม)
จะได้รับประโยชน์ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

9
ังั้นแก้เป็นแบบนี้

โค๊ด: [Select]
Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer)
Cancel = ([Page] <> [Pages])
End Sub

ให้ยกเลิกการแสดง ถ้าไม่ใช่หน้าสุดท้าย

ว้าวววว  สุดยอดเลยอาจารย์ รักอาจารย์จริงๆ

ขอบคุณคราบบบบบบ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

10
ใช้ Query ครับ
การใช้ Dlookup ก็เหมือนการทำ Select Query
Dlookup 1 ครั้ง ก็เหมือนทำ Query 1 ครั้ง

ถ้า Looping ก็ทำ Query ตามจำนวนรอบเลยครับ

คือเห็นคำถาม แต่ไม่เห็นรูปแบบข้อมูล ไม่เห็น Output ที่ต้องการ ไม่รู้จะช่วยอย่างไร
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

11
ห้อง MS Access / : Window10+Access2003 Missing COMDLG32.OCX
« เมื่อ: 03 พ.ย. 63 , 15:58:26 »
ได้แล้วนะครับ  ขอบคุณพี่มาก  ตัวติดตั้ง  VisualBasic6-KB896559-v1-ENU
ไม่งั้นผมคง งม  อีกนาน  ขอบคุณครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

12
ขอบคุณสำหรับคำตอบและการช่วยเหลือด้วยนะคะ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

13
ขอบคุณมากๆเลยครับคุณ PNR ผมทำได้แล้วครับ ขอบคุณสำหรับความช่วยเหลือทุกคำถามนะครับ :D
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

14
ตอบคำถามนะคะ

การระบุ ราคาลด และรหัสสินค้าทำอย่างไร


จริงๆก่อนหน้ามีมีฟอร์มให้กรอกค่ะก็คือให้ลูกค้าเสนอราคาโดยบอกเป็นชื่อสินค้าและราคาที่ต้องการ เรียกว่าใบเสนอราคาน่าจะถูกมากกว่าค่ะ แล้วพนักงานจะเป็นคนเอาใบนั้นมากกรอกรายละเอียดต่างๆ เช่น รหัสสินค้า ราคาที่ลูกค้าเสนอ ที่อยู่ลูกค้า อะไรพวกนี้เป็นต้นค่ะ ทีนี้พอพนักงานเรากรอกพวกนี้เสร็จในฟอร์ม ก็จะปริ้นรายงานออกมาแล้วไปให้หัวหน้าพิจารณาว่าเขาโอเคกับราคาที่ลูกค้าเสนอมาไหม ซึ่งเขาต้องการดูข้อมูลย้อนหลังเพื่อเรียบเทียบ ดังนั้นมันจึงต้องมีใบที่ 1 ว่ามีรายการอะไรบ้าง และใบที่2 ต้องบอกได้ว่าในรายการสินค้าที่อยู่ในใบ 1 เคยถูกเสนอราคาไปเท่าไหร่บ้างค่ะ


ส่วนตัวตอนนี้แยกกัน 2 report ได้ค่ะ แต่เอามารวมกันไม่ได้ ลองเอามารวมกัน(แบบ sub report) มันก็โชว์ข้อมูลทั้งหมดที่ถูกจัดกลุ่มไว้ ไม่ได้โชว์ตามรายการสินค้าปัจจุบันที่เลือกค่ะ


โพสต์นี้ได้รับคำขอบคุณจาก: PNR

15
ถ้าต้องการจัดข้อความให้อยู่กึ่งกลางเซลล์ที่รวม ทั้งแนวตั้งและนอนด้วย เท่าที่คิดออกคือไปสั่งออกรายงานใน Excel แต่เขียนโค้ดเยอะทีเดียว ถ้าจะทำใน Access วิธีเท่าที่คิดออก เป็นแค่การหลอกตาเท่านั้น ข้อความในบรรทัดที่ซ้ำจะหายไปตามต้องการ แต่ข้อความจะยังคงอยู่ที่บรรทัดแรกเสมอ ไม่สามารถไปกึ่งกลางเซลล์ที่รวมได้

วิธีการคือ
- การซ่อนข้อความที่ซ้ำ ให้กำหนด Hide Duplicate property ของเท็กซ์บ็อกซ์ที่แสดง "เหตุผลที่ซื้อ" (สมมุติชื่อ txtReason) เป็น Yes แต่ข้อความนี้จะพิมพ์เสมอเมื่อเป็นบรรทัดแรกของหน้า
- การพิมพ์ขอบของเซลล์ที่รวม เราจะสร้างคอนโทรลของเส้น แทนการใช้กรอบของเท็กซ์บ็อกซ์ ดังนั้น Border Style ของ txtReason กำหนดให้เป็น Transparent ไป ให้สร้างเส้นแนวนอน lineUpper อยู่ที่ขอบบนของ txtReason และให้มีความยาวเท่ากันพอดี  เส้น lineLower วางอยู่ขอบล่าง  เส้น lineRight เป็นแนวตั้งวางอยู่ขอบขวา ส่วนขอบซ้ายคงไม่จำเป็นเพราะเท็กซ์บ็อกซ์ทางซ้ายจะพิมพ์เส้นนั้นอยู่แล้ว   เส้นทั้ง 3 ต้องจัดเลเยอร์ให้อยู่เหนือ txtReason ด้วยนะครับ
- lineUpper จะพิมพ์เมื่อ txtReason พิมพ์ (ซึ่งก็คือบรรทัดแรกของกลุ่มข้อความที่ซ้ำ) โดยเช็คได้จาก .IsVisible property
- lineLower จะพิมพ์เมื่อเป็นบรรทัดสุดท้ายในหน้า ซึ่งต้องใช้เทคนิคให้ระบบรันรายงาน 2 หน (ไม่ใช่เราสั่งพิมพ์ 2 หน) หนแรกเช็คได้จากค่า .Pages property ของ Report object จะเป็นศูนย์ เราใช้หนแรกเพื่อบันทึกว่าบรรทัดไหนเป็นบรรทัดสุดท้ายในแต่ละหน้า โดยบันทึกลงในตัวแปรอะเรย์ A  ค่าของ A(เลขที่บรรทัด) จะเป็น TRUE   ส่วนหนที่สองเพื่อตรวจกับ A ว่า ถ้าบรรทัดที่พิมพ์คือบรรทัดสุดท้ายในหน้านั้น ก็ให้พิมพ์ lineLower
- การบังคับให้ระบบรันรายงาน 2 หน ทำด้วยการสร้างเท็กซ์บ็อกซ์ที่มี Control Source เป็น =[Pages]  เอาไว้ใน Page Header section แต่เราไม่ได้ต้องการจะเห็นมัน เราก็กำหนด Visible property ของเท็กซ์บ็อกซ์ให้เป็น No 
- การที่จะรู้ว่าบรรทัดที่พิมพ์เป็นบรรทัดที่เท่าไหร่ ก็ให้สร้างเท็กซ์บ็อกซ์ txtSeq ที่มี Constrol Source เป็น =1, Running Sum property เป็น Over All และ Visible property เป็น No

อธิบายยืดยาว แต่โค้ดมีสั้นๆแค่
โค๊ด: [Select]
Option Compare Database
Option Explicit

Dim A() As Boolean

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    Me.lineUpper.Visible = Me.txtReason.IsVisible
    If Me.Pages <> 0 Then Me.lineLower.Visible = A(Me.txtSeq)
End Sub

Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer)
    If Me.Pages = 0 Then
        ReDim Preserve A(Me.txtSeq)
        A(Me.txtSeq) = True
    End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

16
ใข้เรื่อง Running Sum ลองดูวิธีการจากในไฟล์แนบนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

หน้า: [1] 2 3 4