แสดงกระทู้

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

หน้า: 1 [2] 3 4 5 ... 8
19
กำหนดให้เป็น Primary Key ถ้าเลขเดียวกันมันก็จะเพิ่มเข้าไปในตารางไม่ได้ จะเกิด Error แจ้งมา

20
ตอนสร้างลิงค์มันจะมีปุ่ม Advance ที่สามารถเข้าไปกำหนด font encoding ได้ พอดีไม่ได้ใช้เวอร์ชั่น 2010 เลยตอบยาก

21
จากความสัมพันธ์จะเห็นว่าตาราง 2divition ถ้าจะเพิ่มระเบียนเข้าไป จะต้องมีฟิลด์ ID ที่ต้องมีค่าอยู่ใน ID ของตาราง 1Name divition อยู่ก่อนหน้าแล้ว ถ้าเพิ่มระเบียนโดยไม่มีค่านี้อยู่ก็จะเกิด Error ที่ว่ามาได้ครับ

22
ระเบียนที่เพิ่มจำเป็นต้องมี Foreign key ที่เชื่อมโยงไปยัง Primary key ของอีกตารางหนึ่ง

ลองเปิดหน้าต่างความสัมพันธ์ดูว่ามีการเชื่อมโยง key ต่างๆไว้หรือไม่

23
ห้อง MS Access / : Hide Duplicates
« เมื่อ: 23 ธ.ค. 61 , 18:09:50 »
บรรทัด Dim KeyShow() ต้องเอาไปอยู่ก่อนที่จะมีฟังก์ชั่นใดๆครับ อยู่ใต้บรรทัด Option Compare Database ครับ

24
ห้อง MS Access / : Hide Duplicates
« เมื่อ: 21 ธ.ค. 61 , 17:19:25 »
อีกทางเลือก
โค๊ด: [Select]
Dim KeyShow()  'กำหนด array ใน form scope เพื่อให้ทุก sub หรือ func มองเห็น

Private Sub Form_Load()
       
SetKeyShow "visit_No", "VD"   'ตอนโหลดข้อมูลเสร็จให้สร้าง array ที่เก็บ PK แรกของค่าที่ไม่ซ้ำ

End Sub

Private Sub SetKeyShow(PK_Name As String, FieldShow_Name As String)
Dim MyRS As Recordset, CurrentValue As Variant

ReDim Preserve KeyShow(0 To 0) 'set ขนาด array มีค่า 1 ตัว

Set MyRS = Me.RecordsetClone

If MyRS.RecordCount > 0 Then
    MyRS.MoveFirst
    KeyShow(0) = MyRS(PK_Name) 'บรรทัดแรกต้องแสดงอยู่แล้ว เก็บ PK ไว้
    Do While Not MyRS.EOF
        CurrentValue = MyRS(FieldShow_Name) 'เก็บค่าบรรทัดปัจจุบันไว้
        MyRS.MoveNext
        If Not MyRS.EOF Then
            If MyRS(FieldShow_Name) <> CurrentValue Then 'ถ้าบรรทัดถัดไปไม่ซ้ำกับบรรทัดปัจจุบันก็ดำเนินการเก็บค่าไว้
                ReDim Preserve KeyShow(0 To UBound(KeyShow) + 1) 'เพิ่มขนาด array
                KeyShow(UBound(KeyShow)) = MyRS(PK_Name) 'เก็บค่า PK ที่ไม่ซ้ำเพิ่มใน array
            End If
        End If
    Loop
End If
MyRS.Close
Set MyRS = Nothing

End Sub

Private Function IsShow(PK As Variant) As Boolean
Dim i As Long
'ตรวจสอบค่า PK ที่จะต้องแสดง
IsShow = False
For i = LBound(KeyShow) To UBound(KeyShow)
    If KeyShow(i) = PK Then
      IsShow = True
      Exit For
    End If
Next i
End Function

ในคอนโทรลที่ต้องการไม่ให้แสดงค่าเฉพาะที่ไม่ซ้ำให้กำหนด source = IIf(IsShow([visit_No]),[VD],"")

25
แนะนำให้สร้าง report แล้ว copy เอาคอนโทรลในฟอร์มไปไว้ใน report แทนครับ ใน report เราสามารถควบคุมการจัดพิมพ์ได้ดีกว่าครับ

26
ถ้าเป็น Access 2007 จะต้องเป็น service pack 2 ขึ้นไปถึงจะมีเมนู export excel ครับ แนะนำให้ติดตั้ง Office 2007 service pack 3 ซึ่งเป็น service pack ล่าสุดไปเลยครับ

27
ลองเปิดไฟล์ .accde แล้วไปดูที่ตาราง Received กับตาราง StockWMS_yesterday ว่ามันไม่มีฟิลด์ที่ชื่อ PO Number กับ Zone_ID จริงหรือไม่

28
ใช้อันนี้แทน แต่ต้องกด Enter หลังจากใส่สูตรทุกครั้ง

Private Sub Output_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo Output_Err:
Dim myValue As Variant

If KeyCode = vbKeyReturn Then
    myValue = Eval(Me.Output.Text)
    Me.Output = myValue
End If
   
Output_Err:
    'bypass error

End Sub

29
Private Sub Output_AfterUpdate()
On Error GoTo Output_Err:
Dim myValue As Variant

myValue = Eval(Me.Output)
Me.Output = myValue

Output_Err:
  ' bypass error

End Sub

หมายเหตุ: ไม่ต้องใส่เครื่องหมาย = นะครับ ใส่ตัวเลข + - * / ได้เลย

30
มัน fix 4 ตัวนี้หรือเปล่า หรือมีเงื่อนไขอะไรที่จะได้มาซึ่ง 4 ตัวดังกล่าว ถ้าไม่ได้มีเงื่อนไขพิเศษ ก็ hard code ไปเลย เช่น

In ("FG","ACC","ACC-SET","IMPLEMENT")

31
ห้อง MS Access / : Generate Auto Number แบบ Fixed Format
« เมื่อ: 25 พ.ค. 61 , 20:59:05 »
ทุกครั้งที่ใช้ RecordSet ให้เช็คผลลัพธ์ก่อนครับว่ามี record มาหรือไม่ ไม่งั้นมันจะ Null หมดนะครับ

Set rs = CurrentDb.OpenRecordset("SELECT JobDetail.Team1, Max(Val([DptRef])) AS Ref, Left([JobRunning],2) AS [year] FROM JobDetail GROUP BY JobDetail.Team1, Left([JobRunning],2) HAVING JobDetail.Team1=[Forms]![CaseTrack-AdminTab]![Team1] AND Left([JobRunning],2)=61")

If rs.RecordCount > 0 then
  Q = Val(rs.Fields(1)) + 1
  Me.DptRef = Format(Q, "0000")
End if
rs.Close

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

32
ถ้า Type_cmb = "All" มันถึงจะทำ Query StockCard ที่ว่า แต่ถ้า Type_cmb เป็นตัวเลือกอื่นมันก็จะวิ่งมาที่นี่เลย
Else
DoCmd.OpenForm "ViewStockCard"
ก็เลยได้ผลอย่างที่ว่าครับ

33
ถ้าคีย์หลักเป็น Autonumber โปรแกรมมันจะใส่ค่าให้ ถ้าไม่ใช่ก่อนจะไประเบียนอื่นก็ใส่ค่าให้มันก่อนครับ

34
ออกแบบรายงานให้เป็น A5 (ชึ่งเป็นขนาดครึ่งนึงของ A4) โดยกำหนดให้ layout เป็น landscape แต่ตอนพิมพ์คุณต้องตัดกระดาษ A4 เป็นครึ่งนึงนะครับ แล้วฟีดกระดาษตามแนวตั้งของ A5 ตามปกติครับ

ในกรณีที่ต้องพิมพ์ 2 ชุดอยู่แล้ว ก็ออกแบบเป็น A4 ปกติแค่ copy รายงานเป็น 2 ส่วน บน ล่าง แค่นั้นครับ

35
เป็นผมจะสร้างรหัสที่เก็บเป็น A11926
A - Zone
11 - Cabinet
9 - Shelf
26 - Sequence

แค่นี่้ก็สามารถใช้ Query หาข้อมูลต่างๆได้แล้ว

36
อ้างอิง control ใน subform ให้ลองใช้แบบนี้ครับ

Private Sub Form_Close()
   Forms.[ชื่อMain_Form].frmtbl_Purdet.Form.Part_desc.Requery
End Sub

หน้า: 1 [2] 3 4 5 ... 8