37
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.
38
ห้อง Ms Access อื่นๆ / : MS Access ส่ง Line notify ข้อความ รูปภาพ
« เมื่อ: 26 มี.ค. 62 , 15:26:29 »มีแบบส่งรายบุคคลมั้ยครับพี่
คือถ้าจะส่งไปคนไหน คนนั้นก็จะต้อง Generate token แล้วนำรหัส token มาให้เรา เราถึงจะส่งให้คนนั้นได้ครับ
39
ห้อง MS Access / : ต้องการนำเครื่องอ่านบัตรประชาชนเพื่อนำข้อมูลลงในตาราง ACCESS
« เมื่อ: 15 ก.พ. 62 , 02:36:59 »
เพิ่งรู้นะครับว่าโปรแกรมนี้มีฟรีแวร์ด้วย ผมเห็นแต่เป็นแบบทดลองใช้แล้วมันจะมีลายน้ำที่รูป อ.laemthong มีแบบเป็น 64bit หรือเปล่าครับ ถ้ามีรบกวนขอแบบ 64bit ด้วยครับ ขอบคุณครับ
โพสต์นี้ได้รับคำขอบคุณจาก: pirin
40
ห้อง MS Access / : ต้องการนำเครื่องอ่านบัตรประชาชนเพื่อนำข้อมูลลงในตาราง ACCESS
« เมื่อ: 11 ก.พ. 62 , 10:02:01 »
แนะนำให้โหลดโปรแกรม Siam-ID มาติดตั้งนะครับ เป็นฟรีแวร์โปรแกรมในตำนานโปรแกรมเดียวของไทยที่ฟรี และใช้โหมด Fill From จากนั้นก็สร้างฟิลด์บนตาราง MS Access ให้ตรงกับที่ตั้งค่าไว้ในโปรแกรม Siam-ID
การใช้งานคือเมื่อเปิดโปรแกรม Siam-ID ในโหมด Fill from แล้ว เราก็เปิดใช้งานโปรแกรมอะไรก็ได้ในที่นี่ก็คือ MS Access จากนั้นก็คลิ๊กเคอร์เซอร์ไปที่ฟิลด์แรกที่เราต้องการบันทึกรอไว้ก่อน แล้วเราก็เสียบบัตรประชาชนเข้าเครื่องอ่านบัตร โปรแกรม Siam-ID ก็จะทำการ SendKey เหมือนกับการใส่คำในคีย์บอร์ดทีละหัวข้อลงไปในฟิลด์ของ MS Access ที่เราโฟกัสไว้ทีละฟิลด์ไปเรื่อยๆ จนครบ ส่วนรูปให้สร้างฟิลด์ใน MS Access เป็น OLE Object มันจะรองรับไฟล์รูปบัตรลงในฟิลด์ได้เลยครับ
ปล. หากไม่เข้าใจอยากลองก่อน ให้ลองกับ MS Excel ก่อนได้ครับ โดยเปิดโปรแกรม MS Excel ขึ้นมา แล้วเสียบบัตรอ่านดู ก็จะเห็นการทำงานของโปรแกรม Siam-ID ในโหมด Fill From เองครับ
หรืออีกวิธีอันนี้จะยากหน่อยคือ ในโปรแกรม Siam-ID เมื่อเราทำการอ่านบัตร โปรแกรมจะสร้างไฟล์ที่เป็น Text ไฟล์ และ รูปที่เป็น Jpg ไว้ในโฟลเดอร์ Siam-ID ที่ Document เราสามารถเขียนโค้ดให้ MS Access อ่าน Text ไฟล์นั้น แล้วบันทึกลงบนฟิลด์ได้ แต่จะมีปัญหาที่ผมเคยเจออย่างนึงคือมันจะอ่านภาษาไทยไม่ได้ อันนี้ต้องใช้วิธีแก้กันหลายขั้นตอนอยู่ ส่วนรูปก็เซฟจากโฟลเดอร์ Document\Siam-ID มาใช้งานได้เลย เป็นอีกทางเลือกลองไปปรับใช้งานดูครับ เป็นไอเดีย
การใช้งานคือเมื่อเปิดโปรแกรม Siam-ID ในโหมด Fill from แล้ว เราก็เปิดใช้งานโปรแกรมอะไรก็ได้ในที่นี่ก็คือ MS Access จากนั้นก็คลิ๊กเคอร์เซอร์ไปที่ฟิลด์แรกที่เราต้องการบันทึกรอไว้ก่อน แล้วเราก็เสียบบัตรประชาชนเข้าเครื่องอ่านบัตร โปรแกรม Siam-ID ก็จะทำการ SendKey เหมือนกับการใส่คำในคีย์บอร์ดทีละหัวข้อลงไปในฟิลด์ของ MS Access ที่เราโฟกัสไว้ทีละฟิลด์ไปเรื่อยๆ จนครบ ส่วนรูปให้สร้างฟิลด์ใน MS Access เป็น OLE Object มันจะรองรับไฟล์รูปบัตรลงในฟิลด์ได้เลยครับ
ปล. หากไม่เข้าใจอยากลองก่อน ให้ลองกับ MS Excel ก่อนได้ครับ โดยเปิดโปรแกรม MS Excel ขึ้นมา แล้วเสียบบัตรอ่านดู ก็จะเห็นการทำงานของโปรแกรม Siam-ID ในโหมด Fill From เองครับ
หรืออีกวิธีอันนี้จะยากหน่อยคือ ในโปรแกรม Siam-ID เมื่อเราทำการอ่านบัตร โปรแกรมจะสร้างไฟล์ที่เป็น Text ไฟล์ และ รูปที่เป็น Jpg ไว้ในโฟลเดอร์ Siam-ID ที่ Document เราสามารถเขียนโค้ดให้ MS Access อ่าน Text ไฟล์นั้น แล้วบันทึกลงบนฟิลด์ได้ แต่จะมีปัญหาที่ผมเคยเจออย่างนึงคือมันจะอ่านภาษาไทยไม่ได้ อันนี้ต้องใช้วิธีแก้กันหลายขั้นตอนอยู่ ส่วนรูปก็เซฟจากโฟลเดอร์ Document\Siam-ID มาใช้งานได้เลย เป็นอีกทางเลือกลองไปปรับใช้งานดูครับ เป็นไอเดีย
41
ห้อง MS Access / : สอบถามการนำค่า Checkbox เก็บลง Table ครับ
« เมื่อ: 19 ธ.ค. 61 , 09:53:30 »
ถ้าอยากเก็บค่า Checkbox หลายๆ ตัวลงในฟิลด์เดียว ลองทำเป็นค่ายกกำลังแล้วจัดเก็บในรูปแบบของตัวเลขตามกระทู้นี้ที่ อ.สันติสุข เคยแนะนำไว้ดูครับ
https://www.thai-access.com/yeadram_view.php?topic_id=3414
https://www.thai-access.com/yeadram_view.php?topic_id=3414
โพสต์นี้ได้รับคำขอบคุณจาก: Apocalypse
42
ห้อง MS Access / : การใช้คำสั่ง iifซ้อน iif
« เมื่อ: 11 ธ.ค. 61 , 11:50:48 »
ปัญหาการใช้ Expression จะมี 2 อย่างครับ คือ 1. พิมพ์ตัวอักษรมากเกินไป จำไม่ได้แล้วเท่าไหร่แต่ก็มากอยู่ 2. ใช้นิพจน์ซ้อนกันเกินประมาณ 13 ตัวมั้ง จำตัวเลขไม่ได้
ปัญหาของกระทู้นี้คือใช้นิพจน์ซ้อนกันเยอะเกินไป ไม่ว่าจะเป็น IIf ซ้อน IIf หรือใช้ฟังก์ชั่น Switch() ก็ไม่สามารถซ้อนกันเกินได้ จึงต้องใช้การแยกฟิลด์ไม่ให้เกินครับ
ปัญหาของกระทู้นี้คือใช้นิพจน์ซ้อนกันเยอะเกินไป ไม่ว่าจะเป็น IIf ซ้อน IIf หรือใช้ฟังก์ชั่น Switch() ก็ไม่สามารถซ้อนกันเกินได้ จึงต้องใช้การแยกฟิลด์ไม่ให้เกินครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak
43
ห้อง MS Access / : อยากทำ progress meter
« เมื่อ: 10 ธ.ค. 61 , 17:14:08 »
ลองดูคลิปนี้นะครับ แต่การแสดง meter มันทำให้เครื่องต้องเสียเวลาแสดงส่วนนี้เพิ่มด้วยทำให้การทำงานช้าลงอีกนะครับ
ปล. มันจะมีอีกอย่างคือ progress meter ที่ Status bar ไม่แน่ใจว่าตั้งแต่ MS Access เวอร์ชั่น 2007 หรือ 2010 ขึ้นไป ก็สามารถเขียนคำสั่งให้มันแสดงความก้าวหน้าได้ ตัวอย่าง
1. สร้างตัวแปร
Dim ReturnValue As Variant
2. กำหนด สเกล ให้ เท่ากับ 100
ReturnValue = SysCmd(acSysCmdInitMeter, "Processing ", 100)
3. สมมุติเป็นการนับเรคคอร์ดทั้ง ก็ทำให้ เป็น เปอร์เซนต์
For StartLoop = 0 To (TotalRecord - 1)
ReturnValue = SysCmd(acSysCmdUpdateMeter, ((StartLoop) / TotalRecord) * 100)
Next StartLoop
4. เคลียร์
ReturnValue = SysCmd(acSysCmdRemoveMeter)
อะไรประมาณนี้ครับ ปรับใช้ดู
ปล. มันจะมีอีกอย่างคือ progress meter ที่ Status bar ไม่แน่ใจว่าตั้งแต่ MS Access เวอร์ชั่น 2007 หรือ 2010 ขึ้นไป ก็สามารถเขียนคำสั่งให้มันแสดงความก้าวหน้าได้ ตัวอย่าง
1. สร้างตัวแปร
Dim ReturnValue As Variant
2. กำหนด สเกล ให้ เท่ากับ 100
ReturnValue = SysCmd(acSysCmdInitMeter, "Processing ", 100)
3. สมมุติเป็นการนับเรคคอร์ดทั้ง ก็ทำให้ เป็น เปอร์เซนต์
For StartLoop = 0 To (TotalRecord - 1)
ReturnValue = SysCmd(acSysCmdUpdateMeter, ((StartLoop) / TotalRecord) * 100)
Next StartLoop
4. เคลียร์
ReturnValue = SysCmd(acSysCmdRemoveMeter)
อะไรประมาณนี้ครับ ปรับใช้ดู
44
ห้อง MS Access / : การใช้คำสั่ง iifซ้อน iif
« เมื่อ: 10 ธ.ค. 61 , 17:06:21 »
ใช้ MS Access เวอร์ชั่นอะไรอะครับ ทำไมเหมือนใส่ได้น้อยจัง เหมือนกับมันใส่อักษรเกินที่ Textbox มันรับได้ป่าวครับ ถ้าใช่ให้แก้โดยแบ่งครึ่งเงื่อนไขครับ เช่น
a: IIf(Not IsNull([Eff20]),[Eff20],IIf(Not IsNull([Eff19]),[Eff19],Null)) ไปเรื่อยๆ จนสุดที่ใช้ได้
สร้างอีกฟิลด์
b: IIf(IsNull([a]),IIf(Not IsNull([Eff18]),[Eff18],Null),[a]) ไปเรื่อยๆ อีก ถ้ายังไม่หมดก็ต่ออีกฟิลด์ แล้วเราก็เอาฟิลด์สุดท้ายไปใช้งานครับ พอนึกภาพออกไม๊ครับ
a: IIf(Not IsNull([Eff20]),[Eff20],IIf(Not IsNull([Eff19]),[Eff19],Null)) ไปเรื่อยๆ จนสุดที่ใช้ได้
สร้างอีกฟิลด์
b: IIf(IsNull([a]),IIf(Not IsNull([Eff18]),[Eff18],Null),[a]) ไปเรื่อยๆ อีก ถ้ายังไม่หมดก็ต่ออีกฟิลด์ แล้วเราก็เอาฟิลด์สุดท้ายไปใช้งานครับ พอนึกภาพออกไม๊ครับ
45
ห้อง MS Access / : การใช้คำสั่ง iifซ้อน iif
« เมื่อ: 10 ธ.ค. 61 , 14:25:36 »
ที่บอกว่า "มันเหมือนเกินขีดจำกัด และขึ้น error" มันมีปัญหายังไงหรือครับ เท่าที่ดูทั้งการใช้ IIF() หรือใช้ฟังก์ชั่น Switch() มันก็ใช้ได้นะครับ ผมเคยเขียนซ้อนกันเยอะกว่านี้อีก
@UnKnown ทำให้ผมนึกถึงรูปที่เค้าล้อคนที่ชอบเขียน If ซ้อน If กันเยอะๆ รูปนี้เลยครับ
@UnKnown ทำให้ผมนึกถึงรูปที่เค้าล้อคนที่ชอบเขียน If ซ้อน If กันเยอะๆ รูปนี้เลยครับ

โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown
46
ห้อง MS Access / : ต้องการพิมพ์ตัว & โดยให้แสดงเป็นตัว & ไม่ให้แสดงเป็นเครื่องหมาย _
« เมื่อ: 06 ธ.ค. 61 , 11:03:10 »
ถ้าหมายถึงการใส่ Caption ให้พิมพ์เป็นสองตัวครับ && จะได้เป็น & ตัวเดียว
โพสต์นี้ได้รับคำขอบคุณจาก: diehard4
47
ห้อง MS Access / : อยากทราบว่า Object หนึ่ง ๆ มี Property อะไรบ้าง ต้องทำอย่างไรครับ
« เมื่อ: 28 พ.ย. 61 , 00:51:19 »
'----------------Code Start----------------
Dim obj As Object, prop As Property, str As String
On Error Resume Next
For Each obj In Forms("ชื่อฟอร์มเป้าหมาย")
For Each prop In obj.Properties
If obj.Name = "ชื่อคอนโทรลเป้าหมาย" Then
str = str & vbCrLf & obj.Name & vbTab & prop.Name & vbTab & prop.Value
End If
Next
Next
Debug.Print str
'คำสั่งสร้าง Text File ----------------------------
'Open "C:\???\???.txt" For Output As #1
'Print #1, str
'Close #1
'---------------------------------------------
'-----------------Code End-----------------
Dim obj As Object, prop As Property, str As String
On Error Resume Next
For Each obj In Forms("ชื่อฟอร์มเป้าหมาย")
For Each prop In obj.Properties
If obj.Name = "ชื่อคอนโทรลเป้าหมาย" Then
str = str & vbCrLf & obj.Name & vbTab & prop.Name & vbTab & prop.Value
End If
Next
Next
Debug.Print str
'คำสั่งสร้าง Text File ----------------------------
'Open "C:\???\???.txt" For Output As #1
'Print #1, str
'Close #1
'---------------------------------------------
'-----------------Code End-----------------
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc
48
ห้อง MS Access / : สอบถามการสร้างแบบฟอร์มใน Access ครับ
« เมื่อ: 17 พ.ย. 61 , 12:33:43 »
ลองศีกษากระทู้นี้ดูครับ ว่าตรงไม๊
http://www.thai-access.com/yeadram_view.php?topic_id=3065&PagePosition=1
http://www.thai-access.com/yeadram_view.php?topic_id=3065&PagePosition=1
49
ห้อง MS Access / : วิธีใช้ฟังชั่น Nz ใช้ที่ไหน ตรงไหน รบกวนขอตัวอย่างด้วยครับ
« เมื่อ: 17 ต.ค. 61 , 10:50:01 »
ในฟิลด์ Data Type แบบ Text หากกำหนดคุณสมบัติหัวข้อ Allow Zero Length: Yes จะเป็นการกำหนดให้โปรแกรม MS Access เห็นค่าของสตริง "" ไม่เหมือนกับค่า Null กล่าวคือ ค่า Null ของ String ไม่เหมือนกับค่า String ที่มีความยาวเป็น 0 เช่น เมื่อเรากำหนด Allow Zero Length: Yes และกำหนด Required: Yes (หมายถึง ฟิลด์นี้ต้องใส่ข้อมูลห้ามเป็นค่าว่าง) เมื่อเราทำการคีย์ข้อมูลเราสามารถใส่ค่าเครื่องหมาย "" บนฟิลด์ที่กำหนด Required: Yes ได้ โดยโปรแกรมจะเห็นว่ามีค่าแล้ว แต่หากกำหนด Allow Zero Length: No และกำหนด Required: Yes เมื่อเราคีย์ข้อมูลใส่ค่าเครื่องหมาย "" บนฟิลด์ที่กำหนด Required: Yes โปรแกรมจะไม่ยอมให้ผ่านไป ยังคงฟ้องให้ผู้ใช้ใส่ข้อมูลอยู่ นั่นคือโปรแกรมเห็นค่า "" เป็นค่า Null นั่นเอง
ฟังก์ชัน Nz() ก็เช่นกัน เพราะฟังก์ชั่น Nz() จะมองค่า "" ไม่เหมือนกับค่า Null การใช้งานเราตัองมั่นใจว่าค่าที่เราต้องการจะใช้ Nz() ต้องเป็นค่า Null จริงๆ ไม่ใช่ค่า "" เช่น
?Nz(Null,0) = 0
?Nz("",0) = ""
จะเห็นว่าหากเราใช้ Nz() กับค่า String ที่เป็น "" ฟังก์ชั่น Nz() จะไม่ให้ค่าตามที่เราต้องการ
เรื่องของค่าว่าง ค่าศูนย์ ไม่มีค่า และการใช้ฟังก์ชั่นเกี่ยวกับการไม่ใส่ค่าต่างๆ เหล่านี้ต้องทดลองและศึกษาดูครับ มันมีอยู่เยอะเหมือนกันใน MS Access หลายคนตกม้าตายตรงการตรวจสอบค่าพวกนี้ จนทำให้โปรแกรมที่เขียนทำงานผิดพลาดแบบไม่รู้ตัว (ผมด้วยคนนึง) ผมเคยเขียนการทดสอบเล่นๆไว้ลองเทียบดูนะครับ เป็นตัวอย่าง
--------------------------------------------
Dim myVar As Variant
myVar = Null
If Isnull(myVar) Then Return: True
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: Null
If myVar = vbNullString Then Return: Null
If myVar = vbNullChar Then Return: Null
If myVar = vbEmpty Then Return: Null
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: Null
--------------------------------------------
Dim myVar As Variant
myVar = Empty
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: True
If myVar = "" Then Return: True
If myVar = vbNullString Then Return: True
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: True
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: True
--------------------------------------------
Dim myVar As Variant
myVar = ""
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: True
If myVar = vbNullString Then Return: True
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: False
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: True
--------------------------------------------
Dim myVar As Variant
myVar = vbNullString
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: True
If myVar = vbNullString Then Return: True
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: False
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: True
--------------------------------------------
Dim myVar As Variant
myVar = vbNullChar
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: False
If myVar = vbNullString Then Return: False
If myVar = vbNullChar Then Return: True
If myVar = vbEmpty Then Return: False
If myVar & "" = "" Then Return: False
If Nz(myVar) = "" Then Return: False
If Len(myVar) = 0 Then Return: False
--------------------------------------------
Dim myVar As Variant
myVar = vbEmpty
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: False
If myVar = vbNullString Then Return: False
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: True
If myVar & "" = "" Then Return: False
If Nz(myVar) = "" Then Return: False
If Len(myVar) = 0 Then Return: False
--------------------------------------------
ฟังก์ชัน Nz() ก็เช่นกัน เพราะฟังก์ชั่น Nz() จะมองค่า "" ไม่เหมือนกับค่า Null การใช้งานเราตัองมั่นใจว่าค่าที่เราต้องการจะใช้ Nz() ต้องเป็นค่า Null จริงๆ ไม่ใช่ค่า "" เช่น
?Nz(Null,0) = 0
?Nz("",0) = ""
จะเห็นว่าหากเราใช้ Nz() กับค่า String ที่เป็น "" ฟังก์ชั่น Nz() จะไม่ให้ค่าตามที่เราต้องการ
เรื่องของค่าว่าง ค่าศูนย์ ไม่มีค่า และการใช้ฟังก์ชั่นเกี่ยวกับการไม่ใส่ค่าต่างๆ เหล่านี้ต้องทดลองและศึกษาดูครับ มันมีอยู่เยอะเหมือนกันใน MS Access หลายคนตกม้าตายตรงการตรวจสอบค่าพวกนี้ จนทำให้โปรแกรมที่เขียนทำงานผิดพลาดแบบไม่รู้ตัว (ผมด้วยคนนึง) ผมเคยเขียนการทดสอบเล่นๆไว้ลองเทียบดูนะครับ เป็นตัวอย่าง
--------------------------------------------
Dim myVar As Variant
myVar = Null
If Isnull(myVar) Then Return: True
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: Null
If myVar = vbNullString Then Return: Null
If myVar = vbNullChar Then Return: Null
If myVar = vbEmpty Then Return: Null
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: Null
--------------------------------------------
Dim myVar As Variant
myVar = Empty
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: True
If myVar = "" Then Return: True
If myVar = vbNullString Then Return: True
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: True
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: True
--------------------------------------------
Dim myVar As Variant
myVar = ""
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: True
If myVar = vbNullString Then Return: True
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: False
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: True
--------------------------------------------
Dim myVar As Variant
myVar = vbNullString
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: True
If myVar = vbNullString Then Return: True
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: False
If myVar & "" = "" Then Return: True
If Nz(myVar) = "" Then Return: True
If Len(myVar) = 0 Then Return: True
--------------------------------------------
Dim myVar As Variant
myVar = vbNullChar
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: False
If myVar = vbNullString Then Return: False
If myVar = vbNullChar Then Return: True
If myVar = vbEmpty Then Return: False
If myVar & "" = "" Then Return: False
If Nz(myVar) = "" Then Return: False
If Len(myVar) = 0 Then Return: False
--------------------------------------------
Dim myVar As Variant
myVar = vbEmpty
If Isnull(myVar) Then Return: False
If IsEmpty(myVar) Then Return: False
If myVar = "" Then Return: False
If myVar = vbNullString Then Return: False
If myVar = vbNullChar Then Return: False
If myVar = vbEmpty Then Return: True
If myVar & "" = "" Then Return: False
If Nz(myVar) = "" Then Return: False
If Len(myVar) = 0 Then Return: False
--------------------------------------------
50
ห้อง MS Access / : เข้าไปแก้ไข ฟอร์มไม่ได้ ช่วยบอกวิธีด้วยครับ
« เมื่อ: 03 ต.ค. 61 , 23:31:23 »
โพสต์นี้ได้รับคำขอบคุณจาก: Anuwat Jaijomkun
51
ห้อง MS Access / : ถ้าจะเพิ่มฟังก์ชั่น Nz ใน Query ต้องเพิ่มยังไงคะ
« เมื่อ: 31 ส.ค. 61 , 11:30:58 »
ถ้าจะกำหนดให้ค่า Null เป็น 0 ก็ใช้
Val(Nz(DSum("[Que_Pro] * [Salepre_Pro]","tbl_OrderItemPro","ID_Pro=" & [Qry_TotalOut].[ID_Pro]), 0))
Val(Nz(DSum("[Que_Pro] * [Salepre_Pro]","tbl_OrderItemPro","ID_Pro=" & [Qry_TotalOut].[ID_Pro]), 0))
52
ห้อง MS Access / : ถ้าจะเพิ่มฟังก์ชั่น Nz ใน Query ต้องเพิ่มยังไงคะ
« เมื่อ: 30 ส.ค. 61 , 10:29:14 »
ก็ต้องดูว่าค่าในฟิลด์ไหนที่อาจจะเป็นค่า Null ได้ในฐานข้อมูลเรา แล้วทำให้การคำนวณอาจคำนวณค่ากับฟิลด์อื่นที่มีค่าไม่ได้ก็ให้ใส่ Nz() เข้าไปเพื่อทำให้มันสามารถคำนวณค่าได้ เช่นหากถ้าเป็นไปได้ทุกฟิลด์ในฐานข้อมูลเราจะเป็นค่า Null ได้ทั้งหมด เราก็ต้องใส่ทั้งหมดประมาณนี้ครับ
Val(DSum("Nz([Que_Pro]) * Nz([Salepre_Pro])","tbl_OrderItemPro","Nz(ID_Pro)=" & Nz([Qry_TotalOut].[ID_Pro])))
ซึ่งมันแล้วแต่การออกแบบฐานข้อมูลว่าเรากำหนดให้มันสามารถเกิดค่า Null ได้หรือไม่ในฟิลด์ครับ ปรับใช้ดู
Val(DSum("Nz([Que_Pro]) * Nz([Salepre_Pro])","tbl_OrderItemPro","Nz(ID_Pro)=" & Nz([Qry_TotalOut].[ID_Pro])))
ซึ่งมันแล้วแต่การออกแบบฐานข้อมูลว่าเรากำหนดให้มันสามารถเกิดค่า Null ได้หรือไม่ในฟิลด์ครับ ปรับใช้ดู
53
ห้อง MS Access / : สั่ง SetFocus text1 ที่ฟอร์มย่อยไม่ได้ค่ะ
« เมื่อ: 15 ส.ค. 61 , 22:05:27 »
หากคำสั่งอยู่ที่ฟอร์มหลัก ต้องโฟกัสที่ซับฟอร์มก่อนแล้วค่อยโฟกัสที่คอนโทรลซับฟอร์มอีกครั้ง
Forms![เมนฟอร์ม]![ซับฟอร์ม].SetFocus
Forms![เมนฟอร์ม]![ซับฟอร์ม].Form.[คอนโทรล].SetFocus
เป็น
Forms![Frm_Main]![Frm_Sub].SetFocus
Forms![Frm_Main]![Frm_Sub].Form.[Text1].SetFocus
หรือแบบนี้ก็ได้
Me("Frm_Sub").SetFocus
Me("Frm_Sub").Form.Text1.SetFocus
ปรับใช้ดูครับ
Forms![เมนฟอร์ม]![ซับฟอร์ม].SetFocus
Forms![เมนฟอร์ม]![ซับฟอร์ม].Form.[คอนโทรล].SetFocus
เป็น
Forms![Frm_Main]![Frm_Sub].SetFocus
Forms![Frm_Main]![Frm_Sub].Form.[Text1].SetFocus
หรือแบบนี้ก็ได้
Me("Frm_Sub").SetFocus
Me("Frm_Sub").Form.Text1.SetFocus
ปรับใช้ดูครับ
54
ห้อง MS Access / : สอบถามการ Select ข้อมูล 2 เงื่อนไขครับ
« เมื่อ: 15 ส.ค. 61 , 15:10:44 »
คิดว่าที่คุณเขียนไว้ตั้งแต่แรกก็ใช้ได้แล้วมั้งครับ แต่ให้ต่อฟิลด์ลงไปเพิ่ม ประมาณนี้
select * from table_a
where charge & code not in(select charge & code from Table_b)
ไม่รู้ว่าเข้าใจความต้องการของคุณถูกไม๊นะครับ
ปล. การใช้ซับคิวรี่ หากข้อมูลมีจำนวนมากๆ จะทำให้คำนวณได้ช้า
select * from table_a
where charge & code not in(select charge & code from Table_b)
ไม่รู้ว่าเข้าใจความต้องการของคุณถูกไม๊นะครับ
ปล. การใช้ซับคิวรี่ หากข้อมูลมีจำนวนมากๆ จะทำให้คำนวณได้ช้า
โพสต์นี้ได้รับคำขอบคุณจาก: Cyber O haiyo