แสดงกระทู้

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 ... 37 38 39 [40] 41 42 43 ... 46
703
เช่น

นายก   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;

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

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

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

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

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

@TTT

706
ห้อง 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

707
ห้อง 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

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

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

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

709
ข้อมูลประจำปีมาจาก 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 ระบุปีมาก่อนแล้วสร้างคิวรี่ย่อยในการแสดงข้อมูล

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

711
ผมอยากทราบว่า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

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

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

โค๊ด: [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

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

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

715
ตรง 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

716
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

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

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

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

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

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

718
ตรง Menu ทางลัดกำหนดเป็น ไม่ใช่ ก็จะไม่สามารถคลิ๊กขวาได้อีกครับ


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

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

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

719
ในคิวรี่ หรือบนฟอร์มครับการนำไปเรียกใช้ทำแบบไหน ถ้าใช้ Dmax วันที่ และ GroupBy รหัสสินค้าก็ได้เหมือนกันครับ
ลองดูตัวอย่างด้านล่างนะครับ เป็นการแสดงผลในคิวรี่ โดยเลือกข้อมูลวันที่ล่าสุด ของกลุ่มรหัส มาแสดง

720
จากกระทู้56 คือชี้ตำแหน่งใน map ได้พิกัด  ในทางกลับกันที่ผมกระทู้คือ ถ้ามีข้อมูลพิกัดของลูกค้าอยู่ใน table แล้ว  เอาพิกัดไป POT ใน google map ดึงพิกัดไปจาก table ไปปักมุด

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

หน้า: 1 ... 37 38 39 [40] 41 42 43 ... 46