สมัครสมาชิก

แสดงกระทู้

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 ... 8
1
ห้อง MS Access / : cannot open any more tables
« เมื่อ: 25 มี.ค. 62 , 21:58:43 »
เป็นข้อจำกัดของ Access ครับ มันสามารถมีและเปิดตารางได้ไม่เกิน 2000 ตารางครับ ถ้าโปรแกรมมีตารางเยอะ มี query หรือฟอร์มที่อิงตารางเยอะ หรือมีคอมโบบอกซ์หรือ list box ที่อิงกับตารางเยอะๆ แล้วเปิดใช้งานพร้อมๆกัน พอถึงจุดเกิน 2000 ตารางเมื่อไหร่ก็จะมี error นี้ครับ

2
ดูตรงปุ่ม Advanced.. ทั้ง Export และ Import ว่าตั้งค่าอะไรไว้เหมือนกันหรือเปล่า

3
Add ตาราง DropB_Surname เข้าไปใน query ด้วย แล้ว JOIN ตารางเข้าด้วยกัน

4
ห้อง MS Access / : วิธีเซฟไฟล์ MDB เป็น ACCDB
« เมื่อ: 17 ม.ค. 62 , 20:45:42 »
MDB เป็น format เก่า (ver 2000, 2003) แปลงเป็น MDE ได้
ACCDB เป็น format ใหม่ แปลงเป็น ACCDE ได้

ถ้าจะให้ MDB เป็น ACCDE น่าจะต้องแปลงจาก MDB => ACCDB =>ACCDE

5
ห้อง MS Access / : สอบถามError import csv fileค่ะ
« เมื่อ: 17 ม.ค. 62 , 20:34:34 »
ตรง VBA Reference ให้เพิ่ม Microsoft Office 1x.x Object Library เข้าไปด้วยครับ


6
ห้อง MS Access / : สอบถามError import csv fileค่ะ
« เมื่อ: 16 ม.ค. 62 , 15:22:56 »
ถ้าคุณใช้ Code ของผม คุณสามารถลบ Module และฟังก์ชั่นทั้งหมดที่เกี่ยวกับ GetOpenFile ได้เลย เพราะไม่ได้ใช้ส่วนนั้นแล้ว

7
ห้อง MS Access / : สอบถามError import csv fileค่ะ
« เมื่อ: 15 ม.ค. 62 , 14:13:38 »
ดูเหมือน GetOpenFile() จะเป็นการเปิด FileDialog สำหรับเลือกไฟล์เฉยๆ ซึ่งมีทางเลือกอื่นที่ไม่ต้องใช้ Module นี้ได้นะครับ (ดูเหมือน Module นี้จะเขียนขึ้นสมัย Access 95 ตอนที่ยังไม่มีทางเลือกให้ใช้)

โค๊ด: [Select]
Private Sub Command0_Click()
Dim Result As Integer

With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "เลือกไฟล์ที่ต้องการ"
    .AllowMultiSelect = False
    .InitialFileName = "*.CSV"
    .Filters.Add "CSV Files", "*.CSV", 1
    .FilterIndex = 1
    Result = .Show
    If (Result <> 0) Then
        Me.txt_FilePath = Trim(.SelectedItems.Item(1))
    Else
        Exit Sub
    End If
End With

CurrentDB.Execute .....
Docmd.Transfertext......

End Sub

8
กำหนดให้เป็น Primary Key ถ้าเลขเดียวกันมันก็จะเพิ่มเข้าไปในตารางไม่ได้ จะเกิด Error แจ้งมา

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

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

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

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

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

13
ห้อง 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],"")

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

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

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

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