แสดงกระทู้

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 4 5
1
ใช้งานได้ครับอย่างดีครับ ขอบคุณมากครับ

ตอนแรก error ติดอยู่นาน ที่ไหนได้ ประเภทข้อมูลไม่ตรงกัน อีกอัน short text อีกกัน memo

2
ใช่ครับ

ตาราง rejected_email คือเมลที่ตีกลับ

เอามาเทียบกับ email ในตาราง personal

แล้วลบข้อมูลในช่อง email ในตาราง personal

ตัวอย่างในภาพ ผมอาจจะใช้คิวรี่ผิด คือผม join ด้วย email แต่มันก็จะลบ email ไม่ได้

ขอบคุณครับ

3



ผมมี 2 ตาราง
1. ตารางรายชื่อลูกค้าและ email
2. ตาราง email ที่ถูกตีกลับ

ผมอยากจะลบ email ของลูกค้าที่ตีกลับ ลบเฉพาะข้อมูล email ไม่ลบระเบียนครับ
ผมควรจะเขียนคิวรี่อย่างไรดีครับ
ขอบคุณครับ

4
ผมลองมาหลายวิธีแล้ว ทั้งเก็บในคลาวด์ต่าง ๆ ทั้ง sql server / google sql / mysql
วิธีเอาไว้ในพื้นที่คลาวด์ไม่แนะนำเพราะช้า ยิ่งฐานข้อมูลใหญ่ขึ้น ยิ่งช้า เสี่ยงเกิดข้อผิดพลาดของข้อมูล

แนะนำแบบเม้นบนครับ
ถ้าใช้แบบออฟไลน์ วางไว้ที่เครื่องเซิฟเวอร์แล้วใช้งานแบบแชร์ไฟล์

ถ้าใช้แบบออนไลน์สำหรับ work from home ผมใช้ odbc+mysql ฐานข้อมูลบนเว็บไซต์ วิธีนี้ทำงานเร็วใกล้เคียงกับแบบออฟไลน์
ข้อแนะนำ
- เลือกโฮสดี ๆ ถ้าล่มบ่อยก็จะมีปัญหา
- ต้องปรับปรุงโค้ดนิดหน่อย

5
ไม่ได้เหมือนเดิมครับ

error 3146
ODBC--call failed


แต่ใช้เป็นแบบเต็ม ๆ แทนใช้ได้ครับ ขอบคุณครับ

INSERT INTO table1 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

6
ผมจะทำการคัดลอกข้อมูลลูกค้าทั้งหมดครับ

คำสั่ง
CurrentDb.Execute "INSERT INTO Customers SELECT * FROM Customers WHERE Customer_ID = " & FromCustomerID & ";"

แต่มันไม่ทำงาน ไม่แน่ใจว่าต้องใช้คำสั่งไหนครับ รบกวนด้วยครับ

ปล. จำเป็นต้อง vba

7
split database เอา front-end ไว้ที่เครื่องครู เอา back-end ไว้ที่เครื่องหลักซักที่
เชื่อมต่อกันด้วย wifi ก็ใช้งานได้ครับ แต่อาจจะมีหน่วง ๆ นะครับ
ผมไม่รู้ว่าถ้าใช้งานจริง ๆ ห่างกันระดับอาคาร จะให้งานได้ดีแค่ไหน หน่วง หรือค้างหรือป่าว
เพราะที่ผมเคยใช้งาน คือห่างกันแค่ในบริเวรห้องเท่านั้น

อีกวิธีก็คือใช้ back-end เป็น mysql ส่วน front-end ก็ใช้ access ตามปกติ แล้วเข้าถึงฐานข้อมูลผ่าน internet ซึ่งผมใช้วิธีนี้อยู่ ใช้งานได้ดี เร็วมาก ไม่มีปัญหาอะไรครับ ถ้าเน็ตไม่มีปัญหา

8
มาช้าไป เล่าให้ฟังแล้วกันนะครับ
ผมเพิ่งย้ายจาก ms access ไปใช้ sql server ใช้อยู่ซักพัก แล้วเปลี่ยนไปใช้ mysql เมื่อไม่นานมานี้ เพราะ online สะดวกกว่า ผมพบว่า sql server ค่อนข้างหนัก และช้า ขนาดผ่าน lan ยังช้ากว่า mysql ที่ออนไลน์

จากที่ได้ลองใช้ sql server อยู่ซักพัก
ต้องระวังคือ ทุกตารางต้องมี pk หลังจากการ export ไป sqlserver pk จะหาย
ชนิดข้อมูลก็จะถูกแปลง ซึ่งบางชนิดมันไม่ตรงกับที่เราต้องการ ต้องตรวจสอบและเปลี่ยนใหม่ เช่นพวก autonumber / yesno / currency
- join ต้องเป็นชนิดข้อมูลเดียวกัน ตัวเลขก็ต้องตัวเลข (ควรใช้เป็นตัวเลข เป็น text ไม่แนะนำ)
- type mismatch ส่วนใหญ่คือ ชนิดข้อมูลไม่ตรงกัน
- การดึงข้อมูลมาแสดง ต้องดึง pk มาด้วยเสมอ

9


Access + Mysql ODBC

error ค่อนข้างแปลก คือใส่ ip นึง แต่ error แจ้ง ip นึง
- ชื่อ domain และ ip ถูกต้องแน่นอน เครื่องอื่นเชื่อมต่อได้หมด เป็นแค่เครื่องนี้เครื่องเดียว
- ชื่อ user ก็ถูกต้องครับ

ในหน้าต่าง odbc
tcp/ip server : ผมลองใส่ทั้ง domain และ ip แต่เวลา error ดันแจ้งเป็น ip ซึ่ง ip นี้เป็น public ip ของเน็ตผมเองครับ
เหมือนกับมันไม่ได้เชื่อมต่อไปที่ ip server ที่เราใส่ แต่เชื่อมต่อไปที่ public ip เลยทำให้หาไม่เจอ มันเป็นเพราะอะไรครับ




10
ลืมแจ้งเพิ่มเติม ตอนกดปุ่ม save ลองจับ error ดู มันฟ้อง
error 3021 No current record.


ตอนนี้แก้ปัญหาได้แล้วครับ
ตอบไว้เผื่อใครเจอปัญหาเดียวกันครับ

--------------------------------------
ผมทดลองโคลนตาราง customer จากเดิมชนิดข้อมูล ที่เก็บค่า จริงเท็จ
case1 > customer_test1 ใช้เป็นค่าเดิมคือ bit(1) ใน Access แสดงชนิดข้อมูลเป็น Yes/No
case2 > customer_test2 แก้ไขจาก bit(1) เป็น tinyint(1) ใน Access แสดงชนิดข้อมูลเป็น Number(integer)
case3 > customer_test3 ลบฟิลด์ข้อมูล bit(1) ทิ้งทั้งหมด
case4 > customer_test3 สร้างฟิลด์ ชนิดข้อมูล bit(1) เหมือน case 1

ทดลองเปิดด้วยฟอร์มเดิม เปลี่ยนแค่ Record Source

case1 > แก้ไขข้อมูลไม่ได้ แจ้ง write conflict เหมือนเดิม
case2 > แก้ไขข้อมูลได้ปกติอย่างที่ต้องการ  (mySQL เก็บค่า True = -1 / False = 0)
case3 > แก้ไขข้อมูลได้ปกติอย่างที่ต้องการ 
case4 > แก้ไขข้อมูลได้ปกติอย่างที่ต้องการ  (mySQL เก็บค่า True = 1 / False = 0)

แต่มีตาราง Product ที่แม้ว่าค่าเดิมจะเป็น bit(1) ก็สามารถใช้งานได้ปกติ

ดูไปดูมา ปรากฎว่า ฟิลด์ที่จะเก็บค่าจริงเท็จ มีเป็นค่า NULL d

- สรุป -
เป็นเพราะฟิลด์ที่เป็น bit(1) มีค่า NULL
ใน case 4 ที่ลบ ฟิลด์ข้อมูล bit(1) ทิ้งแล้วสร้างใหม่ เป็น bit(1) เหมือนเดิม แต่ใช้งานได้ เพราะเมื่อสร้างใหม่ ค่าเริ่มต้นถูกกำหนดให้เป็น 0 ทั้งหมด ไม่มีฟิลด์ใดว่าง
ใน case 2 แม้มีค่าว่าง แค่ใช้งานได้ปกติ เดาว่า เพราะ tinyint(1) อนุญาตให้มีค่าว่างได้


แต่สุดท้ายผมจะเปลี่ยนฟิลด์ bit(1) เป็น tinyint(1) ทั้งหมด

ขอบคุณครับ

--------------------------------------

11
ก่อนอื่น
ผมใช้ access + mysql (ฐานข้อมูลอยู่บน www)
โดยฐานข้อมูลนี้ export มาจาก sql server โดยไม่มี error ใด ๆ ครับ กำหนด pk เรียบร้อยหมดแล้ว

อาการ
- การดึงข้อมูลมาแสดงทำได้ปกติ
- ข้อมูลที่เพิ่มใหม่ เพิ่มได้ แต่แก้ไขไม่ได้ ฟ้อง write conflict
- แต่ข้อมูลเก่า แก้ไขได้ปกติ




ไม่ทราบว่ามีแนวทางการแก้ปัญหาแนะนำมั้ยครับ
ขอบคุณครับ

12
ขออนุญาติถามต่อยอดครับ วิธีแบบในคลิปสามารถใช้ NAS เป็นเซิฟเวอร์ได้ไหมครับ

เป็นไปได้แต่ไม่แนะนำครับ
nas หน้าที่หลักจัดการไฟล์
มันไม่ได้ออกแบบมาให้ทำงานในรูปแบบของ server สเปคก็ไม่แรงพอ

ถ้าจะแชร์ไฟล์และใช้ฐานข้อมูล sql ด้วย ใช้เป็น server ไปเลยดีกว่าครับ

13
ทุกคำสั่ง CurrentDb.Execute ต้องมี dbSeeChanges ต่อท้ายครับ

เช่น CurrentDb.Execute "DELETE * from Customers WHERE Customer_ID = " & CurrentC_ID, dbSeeChanges

14
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 13 มี.ค. 63 , 08:59:26 »
แบบนี้เลยครับ ขอบคุณมากครับ  :love: :miao:

15
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 12 มี.ค. 63 , 16:25:19 »
ผมไม่เข้าใจว่าทำไมมันไม่วนเปลี่ยนสีให้ครบทุกแถบ

ผมสามารถอ้างอิงโดยใส่โค้ดทีละบรรทัดแบบนี้ ในเหตุการณ์ onload ของฟอร์มหลัก

Me.Nav_Home.BackColor = 11193702
Me.Nav_Home_Sub1.BackColor = 11193702
Me.Nav_Customers.BackColor = 11193702
.
.
.

แล้วก็วนไปเรื่อย ๆ ทุกแถบก็ได้ สีก็เปลี่ยนทุกแถบ แต่พอจะลอง Loop ดูกลับไม่ได้


16
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 12 มี.ค. 63 , 14:15:56 »
ขอบคุณครับ

เป็นเหมือนเดิมครับ คือ สีเปลี่ยนเฉพาะแถบ "Home" ซึ่งสีมันควรจะเปลี่ยนทั้ง Home , สนทนา , รายงาน , และแถบอื่น ๆ

สีแดงคือแถบ "HomePage" ซึ่งโค้ดจะอยู่ในนี้ รวมถึงตอนเรียกใช้ Formstyle Me ซึ่ง Me น่าจะเป็นฟอร์มที่อยู่ในแถบ "Home"

ต้องอ้างอิงชื่อฟอร์มยังไงดีครับ











หน้า: [1] 2 3 4 5