แสดงกระทู้

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

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

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

2
จริงๆ ใช้ Update Query ธรรมดาๆ ก็น่าจะได้นะครับ ลองส่ง 2 ตารางนี้มาครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

3
DAO  ผมชอบใช้เพราะมี Index and seek ให้ใช้ ลองดู index , seek เพิ่มเติมด้วยครับ
ในเว็บมีหลายกระทู้ที่พูดถึง
ตัวอย่าง
https://www.thai-access.com/index.php?topic=629.0
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

4
อ้าว ลบข้อมูลออกทำไมอะครับ เผื่อจะมีประโยชน์กับคนอื่นในอนาคต

ยังแสดงผลไม่ถูกต้องตามต้องการครับ อาจจะทำให้คนเข้าใจผิด
ถ้าแก้ไขแล้ว ผมจะเพิ่มให้แน่นอนครับ
อธิบายเพิ่มเติมให้หน่อยนะครับ
"เลขที่ที่กำหนดขึ้นใหม่" อันนี้ระบุในฟอร์มหรือเปล่าครับ

อ้างถึง
ตอนนี้ผมต้องการเพิ่มข้อมูลเลข Serial ลงใน BillDetail ซึ่งแตกต่างกันในแต่ละระเบียน
"เลขซีเรียล" มาจากไหนมีวิธีการระบุอย่างไร
เราสามารถเปิด Recordset ทั้ง 2 ขึ้นมา แล้วใช้ Loop มาทำกับทุกระเบียนได้ครับ แต่ต้องรู้วิธีได้มาของ เลขที่ที่กำหนดขึ้นใหม่ และ เลขซีเรี่ยลที่กำหนดขึ้น ก่อนว่าสร้างมาอย่างไร




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

5
น่าจะประมาณนี้ครับ

Private Sub CmbDeleteFromRejected_Click()
Dim sql As String
sql = "UPDATE Personal_Contacts SET Personal_Contacts.PC_EMAIL = Null WHERE (((Personal_Contacts.PC_EMAIL) In (select EMAIL from [Rejected_Emails])));"
DoCmd.SetWarnings False
DoCmd.RunSQL sql
DoCmd.SetWarnings True
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

6
ถ้าฟิลด์ Customer_ID มีประเภทข้อมูลเป็น Text  ต้องเขียนเป็น ... Customer_ID = '" & FromCustomerID & "'" ,dbFailOnError

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

7
แนะนำว่าหลังจากเพิ่มเรคอร์ดใหม่แล้ว ให้ไปเปิดดูเรคอร์ดนั้นด้วยโปรแกรม MySQL โดยตรงทันที หาดูว่ามีฟิลด์อะไรที่ค่าเปลี่ยนแปลงไปจากหน้าฟอร์มหรือไม่  ถ้ามี ก็เป็นไปได้ว่าน่ามีความไม่ compatible กันระหว่าง data type บนหน้าฟอร์มกับ data type บนฟิลด์ในเทเบิล ทำให้ ODBC แปลงข้อมูลโดยอัตโนมัติเพื่อให้สามารถเก็บลงเทเบิลได้ ซึ่ง Access จะมองว่านั่นคือ ข้อมูลที่เพิ่งป้อนถูกแก้ไขไปอีกทีแล้ว สิ่งที่อยู่บนหน้าฟอร์มกับเทเบิลไม่เหมือนกันแล้วนะ ดังนั้นก่อนการบันทึกข้อมูลที่เราแก้ไขด้วยตัวเราเองอีกครั้งบนเรคอร์ดที่เพิ่งเพิ่มเข้าไป   Access ก็เลยเตือนออกมาอย่างที่เห็น   สำหรับ data type อะไรใน Access ควรแปลงไปเป็น data type อะไรใน MySQL  ให้ลองหาในเวปดูนะครับ  ส่วนสาเหตุอื่นๆนี่ อาจมี แต่ผมไม่รู้แล้วครับ

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

8
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 13 มี.ค. 63 , 08:42:32 »
แบบนี้ไหมครับ



Sub Formstyle(frm As Form)
For Each ctl In frm.Controls
         If ctl.ControlType = acNavigationButton Or acNavigationControl And ctl.Tag = "b1" Then
                      ctl.BackColor = 4210943
         End If
    Next ctl
    'ctl = Nothing
End Sub

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

9
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 12 มี.ค. 63 , 11:47:36 »
ทำปุ่มพื้นหลัง ให้เป็นสีที่ต้องการใช่ไหมคับ

โค๊ด: [Select]
Sub Formstyle(frm As Form)
Dim ctl     As Control
    For Each ctl In frm.Controls
        If ctl.ControlType = acNavigationButton And ctl.Tag = "b1" Then
                      ctl.BackColor = 11193702
             End If
    Next ctl
End Sub

แต่ถ้าอยากให้เปิดขึ้นมาแล้ว แสดงสี ถ้า tag = B1 ทั้งแบบที่กด Tab อยู่ และ ที่ยังไม่กดก็เพิ่มเป็น
โค๊ด: [Select]
Sub Formstyle(frm As Form)
Dim ctl     As Control
    For Each ctl In frm.Controls
        If ctl.ControlType = acNavigationButton And ctl.Tag = "b1" Then
                      ctl.BackColor = 11193702
                      ctl.PressedColor = 11193702
             End If
    Next ctl
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

10
สั่งบันทึกรหัสใว้ตอนดึงตารางมาครับ (แนวทางจากอ.TTT ดูที่ 26:35นาที)
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

11
- ปัจจุบันนี้ Router แทบจะทุกยี่ห้อ,ทุกรุ่นจะมีให้เปิดใช้งาน Dynamic DNS และ Forward Port ได้หมดครับ

- เมื่อ IP ของ Router มีการเปลี่ยนแปลง DDNS Service จะทำการตรวจสอบและเปลี่ยนแปลงให้เองโดยอัตโนมัติครับ(ประมาณ 5-10นาที / NoIP แบบฟรี)
ปล.บางครั้ง IP ที่ Router อาจจะไม่ตรงกับที่ออกเน็ตจริง(ผู้ให้บริการดักใว้)เราต้องติดต่อผู้ให้บริการที่เราใช้แล้วแจ้งว่าเลขไอพีไม่ตรงให้เขาทำการแก้ด้วยครับ(แนวว่าเราจะทำลิ้งดูกล้องวงจรปิด)

- IP ที่ Router ได้รับสามารถเข้าไปดูที่ตัว Router ของเราเช่นในหน้าต่าง Status > WAN Information
- IP ที่ออกเน็ตจริงหาตรวจสอบจากเว็บเช่น https://checkip.thaiware.com/ ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

12
- ศึกษาระบบ VPN หรือไม่ก็ไปใช้ระบบ Dynamic DNS จากด้านบนครับ

ลูกค้าผมเคยเปิด VPN ให้ผมใช้ ลิงค์จาก Front-End ที่เครื่องผมที่บ้านไปยัง Back-End (.mdb) บนเครื่องลูกค้าปลายทางในต่างจังหวัด เร็วในระดับดีใช้ได้ แต่ค่าใช้จ่ายการทำ VPN คงสูงทีเดียว

แล้วขอสอบถามเพิ่มเติมว่า Router ทุกยี่ห้อจะมีให้ติดตั้ง Dynamic DNS ไหมครับ แล้วเมื่อ IP ของ Router เองเปลี่ยน มันจะส่งข้อมูลการเปลี่ยนแปลงนี้เพื่อไปอัพเดตที่ DDNS Service เองใช่ไหมครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

13
- MS SQL Server รันบนวินโดว์อยู่แล้ว แต่ถ้าเป็น MySQL Server นั้นจะมี2แบบคือติดตั้งบนวินโดว์(ต้องไปหาศึกษาวิธีการตั้งค่าใช้งานอีกที) กับอีกแบบคือทำงานบนลีนุกซ์ อันนี้ถ้าเราลงโปรแกรมพวก xampp จะมี MySQL Server ติดมาให้เราตั้งค่าตอนลงโปรแกรม=ลงเสร็จ MySQL Server พร้อมใช้ทันที่(ง่ายไปอีกแบบ)

- ตัวอย่างการติดตั้ง IIS บน Windows > วิธีการ ติดตั้ง WebServer ด้วย IIS เพื่อแชร์ไฟล์ โดยไม่ต้องเช่า host

- ศึกษาระบบ VPN หรือไม่ก็ไปใช้ระบบ Dynamic DNS จากด้านบนครับ

ปล.ผมเคยลิ้งฐานข้อมูล(MySQL)จากข้างนอกไปยังบริษัทเพียงแค่ทำระบบ Dynamic DNS เท่านั้นไม่ถึงขั้นต้องทำ IIS ครับ (IIS บน Windows หลักๆมีใว้ทำ,หรือเขียนเว็บนะ / thai-access.com รันบน IIS)
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

15
ห้อง MS Access / : Access + mysql แสดงข้อความ #DELETE
« เมื่อ: 19 ส.ค. 62 , 17:09:01 »
https://www.thai-access.com/index.php?topic=525.msg2340
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

16
ไม่แน่ใจว่าคุณตั้งค่า Share ไว้หรือเปล่า เพราะที่ผมทดลองแล้วก็สามารถเปิดไฟล์เดียวกันได้นะครับ
เอางี้นะครับ
1. ทำการ Split DB แล้วเอาไฟล์ตารางไปวางบน Onedrive
2. แชร์โฟลเดอร์ที่เก็บตารางที่อยู่บน Onedrive ไปให้ผู้เกี่ยวข้อง
3. ส่งไฟล์ที่มีแต่ Form พร้อมตารางที่เป็น Link Table ไปวางไว้ที่เครื่องของผู้เกี่ยวข้อง
4. เปิด Onedrive ที่เครื่องของผู้เกี่ยวข้อง แล้ว Login ด้วยชื่อเจ้าของ Onedrive จะเห็นโฟลเดอร์ที่แชร์มาจากข้อ 2.
5. คลิกขวาที่โฟลเดอร์ที่แชร์มาแล้วเลือก Add to my Onedrive (เพิ่มลลงใน Onedrive ของฉัน)
6. เปิด File Explorer แล้ว Login เข้า Onedrive (ข้อ 4-5) ด้วย File Explorer จะทำให้ File Explorer เชื่อมต่อกับ OneDrive
7. เปิดไฟล์ Access ในข้อ 3 แล้วทำการ Relink Table มาที่ Onedrive ที่แสดงไว้ใน File Explorer ที่ Link กับ OneDrive

ที่ผมทดสอบ เวลาอีกฝั่งมีการ Add/Edit Data ทีก็รอประมาณ 1-2 นาที กว่าอีกฝั่งจะ Update ตาม และมีการแจ้งเตือนด้วยว่าตอนนี้ใคร Edit

ตามความเห็นผม การแชร์ใช้ไฟล์ร่วมกัน ผ่าน Onedrive ไม่เหมาะสำหรับงานที่ต้องการ Real Time ครับ
ถ้าทำเป็น Batch Update น่ะ OK

ปกติผมใช้เพราะ ผมใช้คอมหลายตัว แต่ไฟล์เดียวกัน ใช้อยู่คนเดียว เลยไม่เคยเจอปัญหานี้
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

17
ตอบรวม 2 ท่านนะครับ

ข้อจำกัดหลัก ก็จะมีอยู่ 2 ข้อคือ
1. ความเร็วของอินเทอร์เน็ต
2. จำนวนผู้ใช้งานต่อไฟล์ ซึ่งตามสเปคของ Access คือ 255 คนต่อไฟล์

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

18
ที่เคยใช้คือ เอาไฟล์ฝากไว้ใน One Drive แล้วใช้ได้ไม่มีปัญหานะครับ
เจอข้อจำกัดอะไรมั่งยังครับ เช่น ฐานที่มีขนาดใหญ่ หรือการใช้ร่วมกันหลายๆ คน
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

หน้า: [1] 2 3