แสดงกระทู้

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
37
ผมก็ดูวิธีการทำ access+ sql server จากคลิปนี้แหละครับ แต่ลืมขั้นตอนตรงนี้ไปเลย ขอบคุณครับ

38
สวัสดีครับ

ผมเชื่อมต่อฐานข้อมูล Frontend Access + sql server
โดยทุกครั้งที่ปิด access เข้าฐานข้อมูล จะมีให้ใส่รหัสผ่านของ sql server
ตรงนี้อยากจะทราบว่า สามารถเขียน vba ให้ใส่รหัสผ่านไว้ก่อนได้มั้ยครับ ให้ user ไม่ต้องมาพิมพ์รหัสผ่าน

ขอบคุณครับ


39
- 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)

ขอบคุณครับ

ถ้าสามารถใช้งานได้โดยไม่ต้องลง server os / หรือจำลอง server
คิดว่าคงใช้งานบน windows 10 + ms sql 2017 express ครับ

เบื้องต้นอยากจะทราบว่าการทำงาน ช้าแค่ไหนครับ รอคิวรี่ช้ามากมั้ยครับ ถ้า 1-2 วิ ก็พอรับได้ (net true 1 Gbps)

40
สวัสดีครับ สมาชิกทุกท่าน

ขอท้าวความก่อน
คือผมมีเพลนจะทำฐานข้อมูลออนไลน์ โดยจากเดิมเป็น Access / Front End + Back End ทำงานในวง Lan ปกติ

1. ผมลองใช้ Access -> ODBC -> Google Cloud SQL
ก็ทำงานได้ มีปัญหาอยู่เล็กน้อย คือการที่ record แสดงผล #DELETE กับความดีเลย์ในการทำงานนิดหน่อย
และมีค่าใช้จ่ายหลายพันต่อเดือน ก็เลยหาแนวทางอื่น คือ ...ข้อ 2.

2. ใช้เครื่องที่ทำงานเป็น server แล้วไปใช้ Access -> ODBC -> MS SQL Server ผมหาความรู้ในบอร์ดนี้แหละครับ มีแนวทางอยู่บ้าง แต่ว่ามันเป็นการทำงานผ่าน Lan เท่านั้น ผมอยากจะให้เครื่องที่อื่น สามารถเข้ามาใช้ฐานข้อมูลได้ ผ่าน Internet

คำถามคือ ทำอย่างไรได้บ้างครับ ที่จะใช้เครื่องตัวเองเป็น sql server แล้วเครื่องภายนอกเข้าใช้ฐานข้อมูลผ่าน Internet โดย Access เป็น Front End

ผมสับสนว่า ต้องจำลองเครื่องเป็น server xampp ด้วยหรือไม่
หรือลงแค่ ms sql server 2017 express ก็ได้

ขอบคุณครับ

41
ก็ว่าอยู่ ช่วงนี้ฟ้อง error 3340 "คิวรี่เสียหาย" ตลอด

ทำไรไม่ได้เลยครับ  :cry:

42
ทำให้มันเป็นเวอร์ชั่นเดียวกัน เพื่อลดปัญหาที่อาจจะเกิดขึ้นครับ
ที่ผมทำก็คือเปิดไฟล์เก่าด้วยโปรแกรมเวอร์ชั่นใหม่ แล้วบันทึกเป็นเวอร์ชั่นใหม่

สอบถามค่ะถ้าเราใช้ Access 2010 อยู่และอัพเดทโปรแกรมเป็น Version 2013 หรือ Version อื่นๆที่ใหม่กว่า Version ที่ใช้อยู่ปัจจุบัน
จะมีผลต่อกระทบต่อโปรแกรมหรือการใช้งานหรือไม่คะ

ส่วนตัวไม่มีปัญหาอะไรนะครับ
อาจจะเพราะไม่ได้เขียนโปรแกรมซับซ้อน เรียกใช้อะไรพิเศษ


43
ทำให้มันเป็นเวอร์ชั่นเดียวกัน เพื่อลดปัญหาที่อาจจะเกิดขึ้นครับ
ที่ผมทำก็คือเปิดไฟล์เก่าด้วยโปรแกรมเวอร์ชั่นใหม่ แล้วบันทึกเป็นเวอร์ชั่นใหม่

44
ห้อง MS Access / : อยากได้วิธีสร้าง logfile
« เมื่อ: 24 ส.ค. 62 , 11:48:43 »
ขอยกตัวอย่างที่ผมทำนะครับ
แต่ผมเก็บ log ไว้ในตารางนะครับ ไม่ได้เขียนลงไฟล์


เหตุการณ์ After_Click ในปุ่ม OK / ในฟอร์ม Login

โค๊ด: [Select]
'โค้ดนี้หลังจากตรวจสอบ username / password ผ่านแล้ว
 LogUser_ID = DLookup("Employee_ID", "Employees", "Username='" & Me.txtUserName.Value & "'")

 EnvUserName = Eniron("USERNAME")
 EnvCompName = Environ("COMPUTERNAME")

 Call Start_SS(LogUser_ID, EnvUserName, EnvCompName)
 Call SaveActivity(session_Login_ID, "ลงชื่อเข้าใช้", session_Env_UserName, session_Env_CompName, Now())

มาที่โมดูล
ฟังก์ชั่นสร้างเซซซั่น ประกาศตัวแปรเป็นแบบ Public เอาไว้เรียกใช้เวลาจะตรวจสอบผู้ใช้ก่อนจะทำอะไรต่าง ๆ

โค๊ด: [Select]
Public Function Start_SS(getUser_ID As Integer, getUserName As String , getCompName As String)
session_Login_ID = getUser_ID
session_Env_UserName = getUserName
session_Env_CompName = getCompName
End Function


ฟังก์ชั่นในการบันทึกว่าใครทำอะไร
โค๊ด: [Select]
Public Function SaveActivity(LogUser_ID As Integer, Activity As String, getUserName As String, getCompName As String, TimeStampNow As Date)

  Dim db As DAO.Database
  Dim rs As DAO.Recordset
  Set db = CurrentDb
  Set rs = db.OpenRecordset("Activity_Log")

  rs.AddNew
  rs("Employee_ID") = LogUser_ID //ID
  rs("Activity_Log") = Activity //ทำอะไร
  rs("User_Name") = getUserName //ชื่อที่ลงชื่อเข้าใช้คอมพิวเตอร์
  rs("Computer_Name") = getCompName //ชื่อของเครื่องคอมพิวเตอร์
  rs("TimeStamp_Log") = TimeStampNow // วันเวลา
  rs.Update
  rs.Close

End Function

การเรียกบันทึก log
วิธีการเรียกใช้ก็คือ เรียกฟังก์ชั่น SaveActivity ในเหตุการณ์ที่ต้องการบันทึก log เช่น AfterInsert , AfterUpdate , หรือปุ่มกดต่าง ๆ

ตัวอย่าง
 Call SaveActivity(session_Login_ID, "สร้างในเสนอราคา  No : " & Me![Q_ID], session_Env_UserName, session_Env_CompName, Now())
 
 Call SaveActivity(session_Login_ID, "แก้ไขใบเสนอราคา  No : " & Me![Q_ID], session_Env_UserName, session_Env_CompName, Now())

คร่าว ๆ ประมาณนี้ครับ


45
ห้อง MS Access / : Access + mysql แสดงข้อความ #DELETE
« เมื่อ: 21 ส.ค. 62 , 11:25:55 »
ไม่หายครับ
ลองสร้างตารางใหม่แล้ว แค่ตารางเดียว ข้อมูลนิดเดียว
พยายามทำตามหมดแล้ว

1. ติ๊ก Return matching rows แล้ว แต่  Simulate ODBC 1.0 option. หาไม่เจอ
2. ทำแล้ว
3. ทำแล้ว
4. ไม่มีระเบียนที่เป็นทศนิยม
5. ไม่มีระเบียนที่เป็น BIGINT
6. ไม่มี error
7. ไม่เข้าใจเมนู "Query|SQLSpecific|Pass-Through"
8. ไม่ได้ใช้
9. ไม่มีระเบียนที่เป็น Date
10. ไม่มีระเบียนที่เป็น Byte
11. ฐานข้อมูลเล็ก แค่ตารางเดียว 2 ระเบียน

เท่าที่ลอง มีแค่เปลี่ยนชนิดข้อมูลที่เป็น text เป็น varchar(255) เท่านั้น ที่ทำงานได้ปกติ แต่ปัญหาคือ ขนาดแค่ 255 มันไม่พอใช้ครับ
เฮ้อ


46
ห้อง MS Access / Access + mysql แสดงข้อความ #DELETE
« เมื่อ: 19 ส.ค. 62 , 16:51:58 »
Access เป็น Front-end เชื่อมต่อ mySQL ผ่าน localhost ครับ

*MySQL ODBC 8.0 Unicode Drive

ผมทดลองเปลี่ยนชนิดข้อมูลของ Category_ID เป็น tinyInt / SmallInt / MediumInt / Int / แล้วก็แสดงผลเหมือนเดิม คือมีบางระเบียนเป็น #DELETE
แต่ถ้าเปลี่ยนเป็น BigIng ทุกระเบียนจะแสดงเป็น #DELETE



แสดง #Delete บางส่วน แต่ถ้ากด F5 จะแสดงข้อมูลได้ปกติครบทุกระเบียน


เบื้องต้นเท่าที่หาข้อมูล พบว่า Access ไม่สนับสนุน ตัวแปรข้อมูลขนาดใหญ่ แต่นี่ก็เปลี่ยนเป็นชนิดข้อมูลที่เล็กที่สุดแล้วก็ยังไม่หาย

อยากทราบว่าสาเหตุเกิดจากอะไร และแก้ไขได้อย่างไรบ้างครับ
ขอบคุณครับ


47
ขอบคุณครับ

คงใช้วิธีนี้ไม่ได้แล้วล่ะครับ เนื่องจากไฟล์ใหญ่พอสมควร (>100MB)
ทำให้ใช้เวลาซิ้งนานพอสมควร

คงต้องเปลี่ยนเป็น access + mysql แล้วครับ

48
ผมลองทำแล้ว
โดยผมเปิดฐานข้อมูล 2 เครื่อง ทดลองเพิ่มข้อมูล แต่มันไม่ยอมซิ้งข้อมูล โดยแจ้งว่า



คือถ้าผมเปิดโปรแกรม access อยู่ onedrive มันจะไม่ซิ้งข้อมูลเลยครับ ผมต้องปิดก่อน

ไม่แน่ใจผมทำถูกรึป่าว หรือว่ามันต้องไปตั้งค่าที่ไหนก่อนครับ

49
ที่เคยใช้คือ เอาไฟล์ฝากไว้ใน One Drive แล้วใช้ได้ไม่มีปัญหานะครับ

น่าสนใจครับ

แต่เกรงว่าจะมีปัญหาว่ามันจะซิ้งข้อมูลไม่ทัน รึป่าว ในกรณีที่ใช้ร่วมกัน และพร้อมกันหลายคน

เดี๋ยวลองดูครับ
ขอบคุณครับ

50
รบกวนแนะนำวิธีการใช้งานฐานข้อมูล access ผ่าน internet หน่อยครับ

ลักษณะที่อยากจะทำคือ

พนักงานเข้าใช้ฐานข้อมูล font-end (ที่บ้าน) >>> internet >>> back-end (windows 10 ที่ออฟฟิศ)

ขอบคุณครับ


51
ตอนนี้ฐานข้อมูลเป็นแบบแยก front end กับ back end อยู่แล้วครับ

สอบถามเพิ่มเติมครับ

1. Form แบบ Unbound Objects คือ ในส่วนของ Property Sheet > Data > Record Scource ตรงนี้คือไม่ต้องใส่ชื่อ "ตาราง" หรือ "คิวรี่" ใช่มั้ยครับ

2. การบันทึกข้อมูลก็ต้องสร้าง Append Query เยอะมาก พอ ๆ กับจำนวนฟอร์มเลยใช่มั้ยครับ

3. การทำในลักษณะนี้ ส่วนใหญ่คนเค้านิยมทำกันมั้ยครับ

ขอบคุณครับ

52
ปัญหาเกิดจากเวลาใช้ฐานข้อมูลแล้วมีการเปิดระเบียนนึงขึ้นมาหลายเครื่อง (ในวง LAN)
และเมื่อมีการบันทึก มันจะมีตัวเลือกขึ้นมา 3 ตัวเลือก (ผมไม่มีตัวอย่างรูปนะครับ)

แล้วเมื่อผู้ใช้กดเลือก "บันทึกระเบียน"
ระเบียนนั้นข้อมูลจะมั่วไปเลยครับ แล้วระเบียนนั้นก็จะใช้ไม่ได้ แก้ไขไม่ได้ ต้องซ่อมแซมฐานข้อมูลอย่างเดียว

ดังรูป




ซึ่งปัญหานี้เกิดค่อนข้างบ่อยมาก เสี่ยงข้อมูลสูญหาย และเคยหายบ้างแล้ว

อยากจะรบกวนช่วยแนะนำวิธีป้องกัน วิธีแก้ไข หรือเกิดจากการออกแบบ แนะนำด้วยคร้าบ
ขอบคุณครับ

53
ได้แล้วครับ โดยลบลิ้ง navigationbutton ที่มายังฟอร์มนี้ แล้วก็ลิ้งมาใหม่


ผมก็งงอยู่ตั้งนาน  :sweat:
ขอบคุณคร้าบ

54
แก้คอลัมน์ RGB ในตารางแล้วครับ
กลายเป็นว่า access มอง RGB เป็นฟิลด์ (ใช่มั้ยครับ)


edit:
ตอนนี้ทำได้แล้วครับ ผมใช้วิธีแปลง RGB เป็น Hex แล้วค่อยใช้โค้ดของคุณ UnKnown

โค๊ด: [Select]
Me.MxColor.BackColor = "&H" & Right$(strColor, 2) & Mid$(strColor, 3, 2) & Left$(strColor, 2)

เผื่อใครสนใจแปลง rgb to hex
โค๊ด: [Select]
Function RGBtoHEX(R As Byte, G As Byte, B As Byte) As String

    If R < 16 Then
        HEX1 = 0 & Hex(R)
    Else
        HEX1 = Hex(R)
    End If
   
    If G < 16 Then
        HEX2 = 0 & Hex(G)
    Else
        HEX2 = Hex(G)
    End If
   
    If B < 16 Then
        HEX3 = 0 & Hex(B)
    Else
        HEX3 = Hex(B)
    End If
   
    RGBtoHEX = HEX1 & HEX2 & HEX3

End Function
ขอบคุณครับ

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