แสดงกระทู้

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

หน้า: 1 ... 4 5 6 [7] 8 9
109
ผมออกแบบฟอร์มแบบ Spit Form (datasheet) มีบางฟิวด์ต้องการป้องกันไม่ให้มีการคีย์เว้นวรรค ผมเลยค้นหาวิธีไปเจอคำตอบของคุณ TTT ตามรูป ซึงใช้ได้ดีทีเดียวบนฟอร์มที่ไม่ใช่แบบData Sheet แต่ทำไมมันใช้ไม่ได้กับ Split form(แบบ datasheet )ครับ


น่าจะใช้ได้ปกตินะครับ ลองเช็คดูอีกทีว่าใส่ Event ไว้ที่ textbox ตัวไหน
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

110
ห้อง MS Access / : Default Printer ของ Report
« เมื่อ: 26 พ.ค. 61 , 09:06:08 »
อ๋อจริงด้วยครับ ของผมตั้งไว้ที่ Use Specifi Printer ต้องเลือกเป็น Default Printer ถูกต้องหรือเปล่าครับ
ใช่ครับคุณ Prajak
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

111
ห้อง MS Access / : Default Printer ของ Report
« เมื่อ: 25 พ.ค. 61 , 11:56:49 »
สอบถามตามรูปครับ ผมสร้าง Report บนคอมเครื่องหนึ่ง แล้วเวลาไปใช้โปรแกรม access บนคอมอีกเครื่องเพื่อPrint report มันขึ้นตามนี้ครับ เป็นเรื่องปกติหรือเปล่า เข้าใจว่าเหมือนมันจำค่า Default Printer จากเครื่องที่เราสร้าง report ซึ่งก็จะเป็นแค่ครั้งแรกครั้งเดียว


ตรงตั้งค่าของรายงาน ตรงส่วนนี้ท่านตั้งไว้อย่างไรครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

112
ฟอร์มนี้ข้อมูลมาจากตารางโดยตรงแน่เลย
เพราะปกติถ้าผ่านคิวรี่ตรงลบจะไม่แสดง
คำสั่งปิด ปุ่มลบตามนี้เลย


Private Sub Form_Load()
Form.Requery
Me.AllowDeletions = False
End Sub

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

113
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 23 พ.ค. 61 , 12:51:35 »
ใช่ครับ คุณ Prajak

จากตัวอย่าง ถ้าจะให้ดีสั่ง Requery ตอนโหลดฟอร์มมาซักครั้งเพื่อป้องกันข้อผิดพลาดนะครับเพราะ เป็นฟังชั่นทำงานกับข้อมูลบน Form

เช่น
Private Sub Form_Load()
Form.Requery
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

114
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 23 พ.ค. 61 , 10:31:00 »
ลองดูตัวอย่างนี้นะครับ น่าจะโอเคสุดละ

บน 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

ที่ textbox ชื่อ NO ใส่ =RowNum([Form])
ตัวอย่างด้านล่าง
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

115
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 22 พ.ค. 61 , 14:34:15 »
ใน query ที่ดึงออกมาตามรูปนั้นมีข้อมูลอื่นที่เป็นข้อมูลที่ไม่มีค่าซ้ำเช่น เลขที่บิล,เลขที่... อีกใหมถ้ามีในมุมมองออกแบบใส่มันเข้ามาแล้วไม่อยากให้ใครเห็นค่อยไปสั่งซ้อนในมุมมองแผ่นข้อมูลก็ได้
หรือไม่มีข้อมูลอะไรที่ไม่มีค่าซ้ำกันถ้าจะทำตามวิธีนี้ก็ไปทำให้มีครับ


จากนั้นในกล่อง No ตามรูปใส่โค้ด
โค๊ด: [Select]
=GetLineNumber([Form],"Bill_no",[Bill_No])

ก็จะได้เลข No โดยอัตโนมัติ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

116
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 22 พ.ค. 61 , 11:59:23 »
ลองดูตัวอย่างนี้นะครับ
ผมลองกรองแล้วก็ยังรันปกติ
ผมใส่ Code ดังนี้

Private Sub Form_Current()
Me.No.ControlSource = "=RunNumber([Sale_Index])"
End Sub

Sale_Index คือชื่อ Control ครับ
No คือชื่อ Unbound textbox
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

117
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 22 พ.ค. 61 , 10:39:14 »
ลองดูอีกตัวอย่างนะครับ

บน Module

โค๊ด: [Select]
Global sNumber As Long
Global lastcall As Date
Function RunNumber(i) As Long
 If Now - lastcall > 1 / 60 / 60 / 24 Then
        lastcall = Now
        sNumber = -1
        End If
    sNumber = sNumber + 1
    RunNumber = sNumber
    End Function
ที่ฟอร์ม สร้าง Unbound Textbox ขึ้นมา 1 ตัว ใส่
=RunNumber([ชื่อของ Control ที่เราจะนับอันไหนก็ได้ในฟอร์มเลือกมา 1 ตัว])
แค่นี้ก็จะสามารถรันได้เหมือนกันครับ

หมายเหตุ
ถ้ารันฟอร์มแล้ว ตัวเลขที่รันตัวแรกไม่ใช้ 1 อาจจะเป็น 0 หรือ 2 ก็ให้เพิ่มลดที่ตรงนี้ได้เลยนะครับ
Global sNumber As Long
Global lastcall As Date
Function RunNumber(i) As Long
 If Now - lastcall > 1 / 60 / 60 / 24 Then
        lastcall = Now
        sNumber = -1 '-1 หรือ 0 หรือ 1 เลือกกำหนดได้
        End If
    sNumber = sNumber + 1
    RunNumber = sNumber
    End Function
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

118
ห้อง MS Access / : สร้าง runing number บนฟอร์ม
« เมื่อ: 19 พ.ค. 61 , 10:58:57 »
ถ้าตารางมีฟิลด์ที่เป็น AutoNumber อยู่แล้วก็ไม่ต้องทำการเพิ่มฟิลด์ AutoNumber นะครับ
แต่ถ้าไม่มีให้ทำตามนี้
1. เพิ่มฟิลด์ myNum มีข้อมูลเป็น AutoNumber
2. นำฟิลด์ myNum มาใส่ในฟอร์ม ตั้งชื่อว่า myNum
3. ใส่ Code นี้เข้าไปใน Standard Module
=================================================
Option Compare Database
Option Explicit

Function myRunningSum(myForm As Form, myFieldName As String, myFieldNumber)
    Dim RS As Object
    Dim myCount As Integer
        On Error GoTo Err_myRunningSum
        Set RS = myForm.Recordset.Clone
        RS.FindFirst "[" & myFieldName & "] = " & myFieldNumber
            Do Until RS.BOF
                myCount = myCount + 1
                RS.MovePrevious
            Loop
End_myRunningSum:
    myRunningSum = myCount
Exit Function
Err_myRunningSum:
    myCount = 0
Resume End_myRunningSum
End Function
========================================

4. เพิ่ม Unbound Text Box แล้วใส่คำสั่งนี้เข้าไป Control Source
=myRunningSum([Form],"myNum",[myNum])

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

119
รับทราบครับ ขอบคุณครับผม
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

120
รับทราบครับ

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

121
รับทราบครับ

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

122
ผมสงสัยครับว่าไฟล์ที่คุณ Newbies แนบมา
ทำไมเวลากดที่รูปสามเหลี่ยม เพื่อดู filter ของ Query แล้วไม่มีขึ้นอะไรมาให้เลือกเลยอ่ะครับ



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

123
ผมสงสัยครับว่าไฟล์ที่คุณ Newbies แนบมา
ทำไมเวลากดที่รูปสามเหลี่ยม เพื่อดู filter ของ Query แล้วไม่มีขึ้นอะไรมาให้เลือกเลยอ่ะครับ

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

124
ผมใช้ SELECT Final2.*, SumHR2.* คือเอาทุกฟิลล์มาแสดง แล้วไปกำหนด is not null แต่ละฟิลล์อีกที
ส่งไฟล์ตัวอย่างให้ทางเมลแล้วนะครับ
ทดลอง Export แล้ว ไม่มีติด Error ใดๆนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

125
ผมใช้ SELECT Final2.*, SumHR2.* คือเอาทุกฟิลล์มาแสดง แล้วไปกำหนด is not null แต่ละฟิลล์อีกที
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

126
กำหนดว่า ถ้า อันใดอันหนึ่ง is not null ก็ให้แสดง ODNo ครับ แบบนี้


SQL ก็แบบนี้
โค๊ด: [Select]
SELECT Final2.*, SumHR2.*
FROM Final2, SumHR2
WHERE CostQIns IS NOT NULL
 OR  CostQCut IS NOT NULL
 OR  CostQIron IS NOT NULL
 OR  CostQPack IS NOT NULL
 OR  CostQQc IS NOT NULL
 OR  CostQSaw IS NOT NULL;

หรือ อีกแบบ
โค๊ด: [Select]
SELECT Final2.*, SumHR2.*
FROM Final2, SumHR2
WHERE CostQIns or CostQCut or CostQIron or  CostQPack or CostQQc or CostQSaw IS NOT NULL;
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

หน้า: 1 ... 4 5 6 [7] 8 9