แสดงกระทู้

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

หน้า: 1 2 3 [4] 5 6 7 ... 18
49
จากการไล่ดูพบว่าในบางตารางท่านมีการใช้ชื่อฟิวล์เป็นภาษาไทยครับ เช่น คิวรี่ ManCustomer เชื่อมตาราง CodePAT ในนั้นมีฟิวล์ภาษาไทย
แต่ลองแก้ชื่อฟิวล์ภาษาไทยในทุกตารางแล้วก็ยังใช้ไม่ได้ จึงดึงข้อมูลทั้งหมดไปใส่ในไฟล์ใหม่ถึงจะใช้งานได้ครับ

สรุปที่ผมแก้คือ แก้ชื่อฟิวล์ภาษาไทยในทุกตารางเป็นภาษาอังกฤษ(a1,a2,a.../c1,c2,c...) --> สร้างไฟล์ใหม่แล้วดึงตาราง,คิวรี่,หน้าฟอร์มไปใส่ = combo box ทุกตัวขึ้นรายการตามที่พิมพ์

50
ผมก็ลองทำหน้าฟอร์มเปล่าๆขึ้นมาใหม่เหมือนกันบางทีก็ได้แต่สุดท้ายก็ไม่ได้ / ลองไปไล่ใส่ References ใน VB ดูก็ยังไม่ได้  :question:

51
วิธีเบื้องต้นที่ผมทราบคือเรากดที่ปุ่มลูกศร▼ของ combo box ก็จะกรองรายการเบื้องต้นมาให้เราเลยครับ(กดก่อนพิมพ์จะเห็นผลตามว่าครับ)

52
ก่อนอื่นเลยจะบอกว่าพยายามอย่าตั้งชื่อฟิวส์เป็นภาษาไทยครับ ตัวอย่างผมขอใช้ Text20 แทน "วันนัดชำระ" ของท่านนะครับ
โค๊ด: [Select]
Private Sub Text20_AfterUpdate()
Dim DatePK As String
DatePK = Me.Text20 - Date
    If DatePK > 30 Or DatePK < 0 Then
    MsgBox "กรุณาเลือกวันที่ " & Date & " - " & Date + 30, vbCritical, "แจ้งเตือน"
    Me.Text20 = Null
    End If
End Sub

53
ขอตอบตามวิธีที่ผมใช้นะครับนั่นคือ
> CostTruckingSupplier = [ชื่อฟอร์มย่อย].[Form]![Sum CostSup]
> ทำ TextBox ผูกกับตารางที่ต้องการเก็บค่า(แต่สั่งซ่อนไว้ไม่แสดง)
> ทุกปุ่มคำสั่งที่เกี่ยวกับชุดข้อมูลนี้เช่น ปุ่มตัวอย่างก่อนพิมพ์,ปุ่มพิมพ์,ปุ่มปิดฟอร์ม ผมก็จะแอบใส่คำสั่งเข้าไปว่าให้ TextBox.Value = CostTruckingSupplier.Value เพื่อนำค่าไปเก็บใว้ในตารางทีหลังนะ หรือท่านจะใช้เป็น GotFocus,Before,AfterUpdate ก็ได้นะครับลองดู

54
ถ้าหากจะใช้การตัดวันที่ ที่ผ่านมาออกไปแสดงเฉพาะวันที่ปัจจุบันเป็นต้นไปยังไม่เคยทำครับ

แต่ถ้าจะใช้การกำหนดเงื่อนไขว่าถ้าเลือกวันที่ๆผ่านมาแล้วให้แจ้งเตือนและให้ระบุใหม่ก็ลองแบบนี้
สมมุติ textbox เลือกวันที่ ชื่อ txtDatePick

Private Sub txtDatePick_AfterUpdate()
If Me.txtDatePick < Date() Then
MsgBox "ไม่สามารถเลือกวันที่ย้อนหลังได้", vbCritical, "แจ้งเตือน"
Me.Text0 = Null
End If
End Sub

ถ้าผมตอบก่อนจะบอกว่า"กรุณาเลือกวันที่ปัจจุบันหรืออนาคต"นะนี่ :shout:
โค๊ด: [Select]
Private Sub Text20_AfterUpdate()
    If Me.Text20 < Date Then
         MsgBox "กรุณาเลือกวันที่ปัจจุบันหรืออนาคต"
    End If
End Sub

55
ห้อง MS Access / : ต้องการ export file เป็น zip
« เมื่อ: 23 ก.พ. 64 , 12:49:31 »
จากกระทู้นี้ท่าน pizza_p มีตัวอย่างคำสั่งที่ใช้ 7-zip สำหรับบีบอัดไฟล์และคลายไฟล์ออกมาครับ ส่วนถ้าจะเข้าไปใช้ดาต้าภายในไฟล์เลยทั้งที่ยังบีบอัดอยู่นี่น่าจะไม่ได้นะครับ
https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=5609

56
"จำนวน Tag ที่ต้องการพิมพ์" นี่คือจำนวนสำเนาเช่นต้องการให้ปริ้น No.Tag-01 จำนวน 5ชุดใช่หรือไม่ครับถ้าใช่ก็แทรกโค้ดตามตัวอย่างครับ

โค๊ด: [Select]
   Dim stDocName As String
   Dim I As Integer

    For I = N + 1 To Me.tagg     'me.tagg = กล่องจำนวน

        'คำสั่งปริ้น
        stDocName = "ชื่อ report"
        DoCmd.OpenReport stDocName, acNormal

    Next


57
วิธีการใช้ Left,Mid,Right เพื่อดึงค่าออกมาโดย Left ดึงจากทางซ้าย > ,Mid ก็ดึงจากทางซ้ายแต่มีการเว้นระยะก่อนดึง -- > ,Right ดึงจากทางขวา <

ตัวอย่าง ตัวแปล ABC มีค่า 123456789
Left([ABC ],2)     = 12     / ดึงค่าจากซ้ายสุดมา 2ตัว
Mid([ABC ],3,2)   = 34     / ดึงค่ามาโดยตัวแรกคือตัวที่ 3นับจากซ้ายแล้วนับไปต่ออีก 2ตัว
Mid([ABC ],5,3)   = 567   / ดึงค่ามาโดยตัวแรกคือตัวที่ 5นับจากซ้ายแล้วนับไปต่ออีก 3ตัว
Right([ABC ],2)   = 89     / ดึงค่าจากขวาสุดมา 2ตัว

ตัวอย่าง ท่าน PNR จะใช้ Cdate() เพื่อแปลงตัวเลขให้เป็นวันที่ แต่โดยปรกติตัวแปลวันที่จะมี / คั่นอยู่ท่านจึงใช้ Left,Mid,Right เพื่อแยกตัวแปลแล้วใส่ & "/" & เข้าไปคั่นใว้ดังนี้
ตัวแปล [วันที่ วว/ดด/ปป] เก็บค่า 010164 เมื่อใช้ Left([วันที่ วว/ดด/ปป],2) & "/" & Mid([วันที่ วว/ดด/ปป],3,2) & "/" & Right([วันที่ วว/ดด/ปป],2) = 01/01/64 แปลงเสร็จระบบก็ยังคือเป็นข้อความธรรมดาแค่มี / คั่นอยู่แต่สามารถเอาไปให้ Cdate() บอกว่ามันคือวันที่โดย Cdate(ค่อม...ใว้) (จาก 010164 ตอนนี้ระบบมองออกแล้วว่าเป็นวันที่1 เดือน1 ปี64)

ที่นี้มีต่ออีกว่าถ้าอยากให้มันแสดงผลออกมาเป็นอย่างอื่นเช่น 1 มกราคม 64 , มกราคม 2564 , 01/01/64 อีกที่ล่ะได้ใหม?
คำตอบคือได้โดยใช้ Format() เพื่อนำค่าออกมาแสดงผลในรูปแบบที่เราต้องการเพราะจากที่เราใช้ Cdate() ไปนั้นระบบรู้แล้วว่าตัวไหนคือวันเดือนปีเช่น
Format(CDate(.....),"mmm yy")   = ม.ค. 64
Format(CDate(.....),"mmmm yyyy")   = มกราคม 2564
Format(CDate(.....),"dd/mm/yy")      = 01/01/64

แบบงวดภาษี มกราคม 64
= "งวดภาษีเดือน" & " " & Format(CDate(Left([วันที่ วว/ดด/ปป],2) & "/" & Mid([วันที่ วว/ดด/ปป],3,2) & "/" & Right([วันที่ วว/ดด/ปป],2)),"mmmm yy")

แบบงวดภาษี มกราคม 2564
="งวดภาษีเดือน" & " " & Format(CDate(Left([วันที่ วว/ดด/ปป],2) & "/" & Mid([วันที่ วว/ดด/ปป],3,2) & "/" & Right([วันที่ วว/ดด/ปป],2)),"mmmm yyyy")

สรุปขั้นตอน*โดยต้องใช้ให้ครบ
1.ใช้ Left,Mid,Right หั่นตัวเลขออกมาเป็นส่วนๆแล้วใส่ / เข้าไปคั่นใว้
2.ใช้ Cdate() แปลงค่าจากข้อความ,ตัวเลขธรรมดาให้ระบบคิดว่าเป็นวันที่(โดยข้อความต้องมี / คั่นอยู่ก่อนแปลง)
3.ใช้ Format() นำค่าออกมาแสดงผลในรูปแบบที่เราต้องการเช่น d m yy , dd/mm/yy , mmmm yyyy , mmm d yyyy เป็นต้น

*หมายเหตุ สิ่งที่จะเอาไปให้ Cdate() แปลงเป็นระบบวันที่ได้ดีควรจะต้องมี3ส่วนดังนั้นจากที่
ดด/ปป ใน criteria เป็น 0164 ผลลัพธ์ ได้ มิถุนายน 2443
ผมจึงใส่วันที่ 01 เพิ่มเข้าไปให้ Cdate() ทำงานได้อย่างเต็มรูปแบบ
="งวดภาษีเดือน " & Format(CDate("01/" & Left([งวดภาษี ดด/ปป],2) & "/" & Right([งวดภาษี ดด/ปป],2)),"mmmm yyyy")

59
ใช้แบบนี้ดูครับ
="งวดภาษีเดือน " & Format(CDate("01/" & Left([งวดภาษี ดด/ปป],2) & "/" & Right([งวดภาษี ดด/ปป],2)),"mmmm yyyy")

60
ที่บอกว่า"หลังจากอัพเดท"นั้นคือการขึ้นข้อมูลใหม่ใช่หรือไม่ครับ ผมขอตอบเป็นแนวทางดังนี้
1.กล่องข้อความมีแค่อันเดียว เขียนคำสั่งให้ก่อนอัพเดท Copy to Clipboard แล้วหลังอัพเดทก็ Paste from Clipboard to Textbox
VBA Copy to Clipboard, Paste and Clear - wellsr.com link
2.มีกล่องข้อความหลายกล่อง ทำตารางใว้เก็บข้อความจาก Textbox ต่างๆแล้วหลังอัพเดทก็สั่งให้ดึงข้อความจากในตารางที่มีมาใส่ในกล่องข้อความ(แนวทาง)

61
ถามซ้ำกับกระทู้นี้นะ https://www.thai-access.com/index.php?topic=1510.msg6538#msg6538 / กระทู้ซ้อนถูกลบแล้ว
จะเอาปุ่มพิมพ์ใส่ในรายงาน ทำไงครับ

ขอบอกว่าปรกติแล้วทำไม่ได้ครับ
หน้ารายงานหรือ report ใน Access นั้นมันเหมือนเรากดดูตัวอย่างก่อนพิมพ์อ่ะครับ(Print Preview)ดังนั้นเราจะทำได้เพียงแค่ดูมัน ถ้าจะสั่งปริ้นระหว่างดูอยู่ในหน้า report ตัว Access เองซ้ายบนจะมีปุ่มให้กดสั่งพิมพ์อยู่แล้วหรือถ้าจะทำปุ่มคำสั่งทำบนหน้าฟอร์มอย่างนั้นนะถึงจะได้ครับ

62
ขอรบกวนอีกครั้งครับท่านอาจารย์
ผมอยากให้เลขทีใบบินขิ้นปีบวกเดือนและเลขที เวลาเรากดปุ่มเพี่มใหม่ครับ พอถืงปีใหม่ให้เลี่มเลขทีใหม่ครับ
กระทู้และไฟล์ตัวอย่างครับ > อยากได้ตัวอย่าง access การทำ running number แบบ ปี เดือน รันเลข 3 ตำแหน่ง มือใหม

63
ชื่อหัวข้อระบุให้ชัดครับว่า MySQL (ผมเลยนึกว่าเป็น MS SQL)
หน้าเว็บ PHP ลิ้งดาต้าเบส MySQL ศึกษาได้จากที่นี้ดูครับ >แก้ปัญหาภาษาไทย php กับ MySQL (TIS-620 กับ UTF-8) link


ปล.จากไฟล์แนบเห็นว่าใช้ PHP Version: 5.6.32 ซึ่งเป็นตัวเก่า ถ้าไม่มีอะไรมาบังคับหรือเป็นข้อแม้ในการทำเว็บแนะให้ไปใช้ PHP 7.+ ครับ แล้วลิ้งดาต้าเบสด้วยภาษา mysqli >PHP MySQL Configuration & Connect to Database (mysqli)
link
ปล2.ถ้าว่าเปลี่ยนเวอร์ชั่น PHP ไม่ได้เว็บด้านบนบอกว่า PHP 5.6 ก็ใช้ mysqli ได้ครับซึ่งปัจจุบันมีคนใช้กันเยอะมากท่านจะสามารถหาวิธีทำได้แบบง่ายๆเลยครับ
(ผมกำลังหัดเล่น PHP 5.0 ลิ้ง MS SQL ซึ่งปัจจุบันนี้แทบไม่มีคนใช้กันแล้ว  :cry: (MS SQL ลิ้ง Access อีกที))

64
1. สอบถามแนวทางการเชื่อมต่อ ms sql server ผ่าน internet
2. Link SQL Server
3. Client Server - การติดตั้ง SQL SERVER Express (ฟรี) ใช้งานร่วมกับ MS Access ผ่าน ODBC by Access-Creator (อ.TTT)

หน้า: 1 2 3 [4] 5 6 7 ... 18