สมัครสมาชิก

แสดงกระทู้

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 ... 8
1
เช่น

นายก   1   2   3   4
นายข   3   5   6   7
นายค   8   9   0   10

อยากรู้ยอดของแต่ละคนว่ารวมเท่าไหร่

ขอความกรุณาอาจารย์ทุกท่านด้วยครับ

สมมุติฟิลล์ ์CustomerName  / Field1 / Field2 / Field3 / Field4
ตารางชื่อ Table1

ก็จะได้
CustomerName  / Field1 / Field2 / Field3 / Field4 / Sum:nz(Field1,0)+nz(Field2,0)+nz(Field3,0)+nz(Field4,0)

ในรูปแบบ Sql ก็แบบนี้ครับ
โค๊ด: [Select]
SELECT Table1.CustomerName, Table1.Field1, Table1.Field2, Table1.Field3, Table1.Field4, Nz([Field1],0)+Nz([Field2],0)+Nz([Field3],0)+Nz([Field4],0) AS [Sum]
FROM Table1;

2
คือเขียนคิวรี่ ใช้คำสั่ง count แล้วอยากให้แสดงค่าที่ค้นไม่เจอให้=0แบบนี้ต้องทำไงครับ หรือต้องไปกำหนดที่ textbox ครับให้มี defult =0 (ตรงนี้ต้องไปตั้งค่ายังไงครับ) ขอบคุณครับ

ไม่ค่อยเข้าใจโจทย์ครับ ลองอธิบายเพิ่มเติมนิดนะครับ

อยากแทนค่าด้วยเลข 0 บางทีอาจจะใช้ Nz Fuction มาช่วยให้แสดง 0 ถ้าเป็นค่าว่างเช่น Count:Nz([CountField1],0)

3
จากการไปทดลองค้นหาวิธีดูแล้ว วิธีที่น่าจะทำได้คือต้องซื้อ google text to speech thai api หรือ Google Cloud TTS มาใช้ครับเนื่องจากเป็นภาษาไทยด้วยครับเลยทำยาก

ส่วนวิธีอื่นๆ ต้องให้อาจารย์ TTT มาแนะนำให้แล้วละครับ ท่านอาจจะช่วยได้ครับ :grin: :grin:

@TTT

4
ห้อง MS Access / : Access Message Box ไม่ขึ้น
« เมื่อ: 15 พ.ย. 62 , 15:43:05 »
1.ต้องเปิดใช้งาน activex ก่อนด้วยนะครับ



2.เปิดใช้งาน มาโคร



หรือดูจากเว็บนี้ครับ


https://www.ugetproject.com/wp/ms-office-access/%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B9%83%E0%B8%AB%E0%B9%89vba%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99.html link

5
ห้อง MS Access / : Access Message Box ไม่ขึ้น
« เมื่อ: 15 พ.ย. 62 , 15:34:30 »
อีกอย่าง Event AfterUpdate() นั้น ถ้าสมมุติระบุ 4 ไว้แล้วมีการแจ้งเตือนปกติ
พอเปิดฟอร์มขึ้นมาใหม่แล้วไม่ได้ระบุตัวเลขใหม่ Event นี้จะไม่ทำงานครับ

ถ้าจะดักข้อผิดพลาดนี้น่าจะต้องว่างโค้ดไว้ใน Event On Open  ด้วยครับเช่น

โค๊ด: [Select]
Private Sub Form_Open(Cancel As Integer)
Call CheckLow
End Sub

Private Sub Text0_AfterUpdate()
Call CheckLow
End Sub

Sub CheckLow()
Dim Msg As String
Dim Report As Integer
Msg = "สไกล้หมดแล้ว"
Report = Me.Text0
If Report < 5 Then
 MsgBox (Msg), vbInformation, "Status"
 End If
End Sub

6
ห้อง MS Access / : Access Message Box ไม่ขึ้น
« เมื่อ: 15 พ.ย. 62 , 15:18:40 »
ต้อง Dim ...... as ....... ครับ

การกำหนดให้ค่า มากกว่า หรือ น้อยกว่า ได้จะต้องเป็นค่าตัวเลข นะครับเช่น

Private Sub Text0_AfterUpdate()
Dim Msg as string
Dim  Report as Integer
Msg = "สไกล้หมดแล้ว"
Report = Me.Text0
If Report < 5 Then
 MsgBox (Msg), vbInformation, "status"
 End If
End Sub

7
อ้างถึง
ถ้าทำตารางแปลงนาเป็น 1 ตาราง แล้วใน field ฤดูกาลผลิตลง แบบความคิดเห็นที่ 2  จะต้องทำเทียบเนื้อที่อย่างไร
- และอีก 1 อย่าง คือถ้าทำตารางเดียว จะใช้ อะไรเป็น คีย์หลัก เพราะรหัสแปลงก็จะซ้ำกัน

ถ้าสังเกตุดีๆ ข้อมูล FieldID MemberID ตัวเดียวกัน ใช้ GroupBy ได้เลย ถ้ามันเหมือนกันก็จะเหลืออันเดียวแล้วครับ

ส่่งตัวอย่างมาทางไลน์ครับผมทำให้

8
ข้อมูลประจำปีมาจาก 2 ตารางใช่หรือเปล่าครับเช่น Area2018 กับ Area2019
สร้าง Union Query และ Group By Field ID กับ MEMBER_ID  ครับ

หรือการ Join Table เชื่อมความสัมพันธ์ของ Field ID และ MEMBER_ID ของสองตารางเข้าด้วยกันและดึง Area...... ของทั้งสองปีลงมา
และสร้าง Field ลบจำนวนแปลงขึ้นมา  /  ส่วนของ remake ใช้การดึงค่าที่มีมาแสดงทั้งสองอย่างได้
เช่น area2018 Remark1 ระบุ  ขุดบ่อปลา
      area2019 Remark2 ระบุ  ตัดถนนเข้าสวน

ตรงField Remark เราก็ระบุเช่น SRemark:Remark1 & "," & Remark2
ข้อมูลที่แสดงจะได้เป็น ขุดบ่อปลา,ตัดถนนเข้าสวน เป็นต้น
หรือถ้าจะแสดง remark แค่ปีล่าสุดเท่านั้นก็ดึง remark2 มาแสดงได้เลย

หรือถ้าไม่อยาก Fix ปีทั้งสองไว้แบบตายตัว จะสร้างฟอร์มกำหนดปีที่จะแสดงข้อมูลก็ทำได้เหมือนกันครับ
โดยใช้การUnion Query ข้อมูลทั้ง 2 ตารางเข้าด้วยกันและกรองข้อมูลจาก Control ระบุปีมาก่อนแล้วสร้างคิวรี่ย่อยในการแสดงข้อมูล

9
มันน่าจะใช้ google translate มาประยุกต์ใช้ได้นะครับ เดี่ยวลองหาวิธีก่อน เพราะถ้าให้มันบอกลำดับคิวคงไม่ยาก ใช้ไฟล์เสียงทำได้
แต่ถ้าเป็นชื่อคน คงต้องทำวิธีอื่น

10
ผมอยากทราบว่าaccess สามารถเขียนให้โปรแกรมอ่านตัวหนังสือที่อยู่ในฐานข้อมูลออกเป็นเสียงพูดได้หรือไม่ครับ
หากได้มีวิธีการหรือขั้นตอนในการทำอย่างไรครับ ขอคำชี้แนะหน่อยนะขอรับ ขอบพระคุณมากๆขอรับ



เป็นภาษาไทย หรืออังกฤษ ครับ
ถ้าภาษาอังกฤษลองดูตัวอย่างนี้ครับ

ที่ Module ใส่โค้ดนี้เข้าไป

Option Compare Database
Option Explicit
Function MySpeak(str As String)
Dim objVo As Object
Set objVo = CreateObject("SAPI.SpVoice")
objVo.Speak str
End Function

ที่ฟอร์ม สร้าง textbox ชื่อ txtSpeak กรอกข้อความภาษาอังกฤษ แล้ว สร้างปุ่มขึ้นมา 1 ปุ่มใส่โค้ดนี้เข้าไป

Private Sub CmbVoice_Click()
Call MySpeak(txtSpeak)
End Sub

ตัวอย่างด้านล่าง

11
ลองเพิ่มเติมนิดหน่อยเป็นแบบนี้ครับ

โค๊ด: [Select]
Dim strMSG As String
Dim Mbody As String
strMSG = "ข้อความที่จะแสดง"
Mbody = "<p style=""font-size:32px;""><marquee behavior=""scroll"" direction=""left""> " & strMSG
Me.WebBrowser1.Object.Document.write Mbody

ตรง font-size:32px  กำหนดขนาดได้เลยครับ
ถ้าอยากเพิ่มเติมอะไรเข้าไปเช่นสีของตังอักษรก็ใส่

หรืออยากใส่ลูกเล่นให้เยอะกว่านั้นเช่นกำหนดสีตัวอักษร กำหนดชื่อตัวอักษร กำหนดสีแบลคกราว ก็ใส่

Dim strMSG As String
Dim Mbody As String
strMSG = "ข้อความที่จะแสดง"
Mbody = "<html><head><script language=""javascript"">function noScroll(){document.body.scroll=""no"";}" & _
"</script><STYLE>BODY { border-style:none;}</STYLE></head><body onload=javascript:noScroll(); topmargin=""0"" leftmargin=""0"">" & _
"<body bgcolor=""#ffaeae""><p style=""font-size:32px;color:#FF0000;font-family: courier new"" ><marquee behavior=""scroll"" direction=""left"">" & _
strMSG & _
"</marquee></body></html>"

Me.WebBrowser1.Object.Document.write Mbody


ส่วนสีตัวอักษรอยากได้สีัไหนไปดู Color Hex มาใส่แทนได้เลยที่
https://www.color-hex.com/color/ff0000 link

12
แบบนี้เปล่าครับ

13
ลองดูครับได้ไหม
แก้ชื่อ Control เป็นภาษาอังกฤษดีกว่าครับ

14
ตรง Sub Calcucalte แก้ใหม่เป็นแบบนี้ครับ

โค๊ด: [Select]
Sub Calculate()
Me.Text5 = CDbl(Nz(Me.Text2, 0)) + CDbl(Nz(Me.Text3, 0)) + CDbl(Nz(Me.Text4, 0))
If Val(Me.Text5) > Val(Me.Text1) Then
Me.Text6 = CDbl(Nz(Me.Text1, 0))
Me.Text7 = CDbl(Nz(Me.Text5, 0)) - CDbl(Nz(Me.Text1, 0))
Else
Me.Text6 = CDbl(Nz(Me.Text5, 0))
Me.Text7 = "0"
End If
End Sub

15
text6 ได้จากการคำนวนตรงส่วนไหนครับ

ส่วน text5 โค้ดตามนี้ครับ

โค๊ด: [Select]
Sub Calculate()
Me.Text5 = CDbl(Nz(Me.Text1, 0)) + CDbl(Nz(Me.Text2, 0)) + CDbl(Nz(Me.Text3, 0)) + CDbl(Nz(Me.Text4, 0))
End Sub

Private Sub Text1_AfterUpdate()
Call Calculate
End Sub
Private Sub Text2_AfterUpdate()
Call Calculate
End Sub
Private Sub Text3_AfterUpdate()
Call Calculate
End Sub
Private Sub Text4_AfterUpdate()
Call Calculate
End Sub

16
มีเมนู แบบนี้ไหม

กด ที่ File > ตัวเลือกของ Access > ฐานข้อมูลปัจจุบัน

มันมีให้ตั้งค่า Ribbon และตัวเลือกแถบเครื่องมือ

เอาติ๊ก อนุญาติให้ใช้เมนูแบบเต็ม ออก
เอาติ๊ก อนุญาติให้ใช้เมนูทางลัดเริ่มต้น ออก

ถ้าเมนูภาษาอังกฤษ ลองกด
Office button -> Access Options -> Current Database -> Ribbon and Toolbar Options.
เอาติ๊ก  "Allow Full Menus", "Allow Default Shortcut Menus" และ "Allow Built-In Toolbars" ออกครับ

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