เขียนโปรแกรม VB.Net เชื่อมต่อ MS Access พอ Build เป็นไฟล์ .exe ไปติดตั้งเครื่องอื่นแล้วมีปัญหาเรื่องการเชื่่อมต่อฐานข้อมูลครับ
เก็บ Database ไว้ใน Path ของโปรแกรม แล้วอ้างจาก Path ได้หรือเปล่าครับ
Code (VB.NET)
Dim appPath As String = Application.StartupPath()
Code (VB.NET)
Dim exePath As String = Application.ExecutablePath()
Date :
2014-08-14 11:14:08
By :
mr.win
Code (VB.NET)
Dim con as New OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;Data Source=" & Application.StartupPath & "\mydata.mdb"
ประมาณนี้อ่ะครับและตอนทำตัว Setup ก็เอา "mydata.mdb" ยัดเข้าไปที่ Application Folder แค่นี้ก็ไม่น่าจะ Error แล้วน่ะครับ
Date :
2014-08-14 11:57:11
By :
คนผ่านทาง
ได้แล้วครับ ขอบคุณทุกท่านครับ
แต่ตอนนี้มีปัญหาอีกนิดหน่อยคือ เวลาเอาตัว exe ไปติดตั้งเครื่องที่ใช้ win 7 หลังจากติดตั้งตัวโปรแกรมเสร็จแล้วคลิกรันตัวโปรแกรมเลยมันจะไม่สามารถเพิ่ม/แก้ไขข้อมูลในฐานข้อมูลได้ ต้องไปตั้งค่าให้ Run as administrator แต่ทีนี้เวลารันโปรแกรมมันก็จะมีป๊อบอัพเด้งมาเตือนตลอดเลย แก้ยังไงครับ
Date :
2014-08-14 12:05:54
By :
golf
ได้ใส่ USER and Password เข้าเครื่องหรือป่าวครับตอน Setup
Date :
2014-08-14 13:12:25
By :
คนผ่านทาง
ยังไงหรอครับ? หมายถึง ตอน install ต้องให้ใส่ user/pass ของเครื่องที่จะเอาไปลงด้วยหรอครับ?
ผมเพิ่งมาศึกษาภาษานี้ก็เลย ยัง งงๆอยู่ ครับ
Date :
2014-08-14 14:07:47
By :
golf7
ผมหมายถึง Permission ของ user ที่เข้าใช้งาน Windows นะครับ สิทธิ์เป็น Admin หรือป่าวครับ ของผม Win7 ยังลงได้ปกติไม่มีปัญหาอะไร
Date :
2014-08-14 15:05:40
By :
คนผ่านทาง
โอ้ว ตามนั้นเลยครับ ขอบคุณมากครับ
Date :
2014-08-14 15:19:52
By :
golf
ผมก็มีปัญหาเหมือนท่านนี้ครับ แต่รวบกวนแปลงเป็น V C# หน่อยได้ไหมครับ
ขอบคุณครับ
Date :
2014-08-14 16:32:48
By :
worthlesss
สำหรับ c# connect access
Code (C#)
String str_connectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application .StartupPath + @"\mydata.mdb ";
ประมาณนี้อ่ะครับ ผมก็ไม่ค่อยเก่ง C# เท่าไหร่ผิดถูกประการใดก็ขอ อภัยด้วยครับ
Date :
2014-08-14 17:33:31
By :
คนผ่านทาง
สิ่งที่ต้องทำนะครับ
1. ทดลอง Insert ดู แล้วตรวจเช็คฐานข้อมูลว่าข้อมูลเข้าจริงหรือป่าวแล้วลองปิดโปรแกรม ดูว่าข้อมูลหายไหม
2. ถ้ายังหายอยู่ก็ลองไปดู Code อีกที ว่ามี Event ตัวไหน ที่สั่งให้ลบข้อมูลใน Database หรือป่าว
3. ถ้ายังไม่ได้หรือหาไม่เจอ ก็คงต้องเริ่มใหม่ครับเพราะจริง ๆ แล้วถ้าเรา Insert เข้าไปแล้วถ้าเราไม่สั่งลบมัน มันก็จะไม่มีทางหายไป(ตามความเข้าใจน่ะครับ) ทั้งนี้ทั้งนั้นต้องลองดูอีกทีครับ
3. สร้าง ตรวจสอบ ทดสอบ วิเคราะห์ สรุป แก้ไข ตามลำดับ
Date :
2014-08-15 08:31:28
By :
คนผ่านทาง
1. คลิกขวาที่ Shortcut โปรแกรม แล้วเลือก Properties
2. เลือกแท๊ป Compatibility
3. ที่ Privilege Level เลือกเครื่องหมายถูกหน้า Run this program as an administrator
4. คลิกปุ่ม Change Setting for all user
5. ที่ Privilege Level เลือกเครื่องหมายถูกหน้า Run this program as an administrator
6. คลิกปุ่ม OK 2 ครั้ง
Date :
2014-08-16 02:40:32
By :
gunnermontana
ส่วนมากผมจะเก็บ path เชื่อมต่อไว้ใน textfile ไฟล์ครับ ซึ่งแน่นนอนถ้าเรียกผ่าน Application.StartupPath มันจะเรียกผ่านเครื่องใครเครื่องมันครับ ผมเลยเก็บ path เป็นข้อความไว้ใน textfile แล้วเรียกใช้เอาครับ
ฉนั้นแล้ว เครื่อง client จะมี path แตกต่างจาก Server ครับ เช่น
Server
Dim con as New OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;Data Source=" & Application.StartupPath & "\mydata.mdb"
client
Dim con as New OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;Data Source=" & ชื่อเครื่องหรือ IP เครื่องServer & "\mydata.mdb"
ส่วนถ้าเชื่อมต่อไม่ได้ แนะนำตรวจสอบเรื่อง Permission และ แชร์ Folder ที่เก็บฐานข้อมูลด้วยครับ หรือง่ายๆเลย อยากให้ Path ให้เหมือนกัน ให้สร้าง Map Network Driver แล้วเรียกผ่าน Driver ที่ Map ไว้ครับ จะทำให้ Path เหมือนกันครับ เช่น
Code (VB.NET)
dim path as "Z:\";
Dim con as New OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;Data Source=" & path & "mydata.mdb"
Date :
2014-08-16 12:50:58
By :
slurpee55555
Date :
2015-05-04 22:33:36
By :
yupawadee
ขึ้นแบบนี้ต้องทำไงบ้างคะ ขอคำแนะนำด้วยคะ
ขอบคุณมากคะ
Date :
2015-05-04 22:34:22
By :
yupawadee
Date :
2016-01-29 20:25:03
By :
SmileSweet
Date :
2016-04-23 11:56:50
By :
2
มีเรื่องจะสอบถามหน่อยค่ะ VB+Access คือว่าบันทึกข้อมูลไปแล้วแต่ในฐานข้อมูลไม่ขึ้นค่ะ ต้องทำยังไงค่ะ
Date :
2016-10-15 22:47:53
By :
๋จุฑารัตน์
แล้วใน Access มี ข้อมูลที่บันทึก ไปแล้วไม๊ครับ
Date :
2016-10-15 23:11:58
By :
lamaka.tor
คือหนูก้อเคยทำครั้งแรกค่ะ เลยไม่ค่อยรู้เรื่องหรือเข้าใจมากนะ
นี่คือในฐานข้อมูล ในID Room มันไม่ขึ้นให้ค่ะทั้งทีีในระบบมันขึ้นให้แร้วแต่ข้อมูลนอกจากไอดีรูมมาหมดค่ะ หนูทำผิดตรงไหนหรอค่ะ
Date :
2016-10-15 23:43:36
By :
จุฑารัตน์
Date :
2016-10-15 23:51:52
By :
จุฑารัตน์
ปกติ room นี่มันต้องอัพเดทตลอดเรอะครับ
ผมนึกว่าเราสร้างตึกแล้วก็มีห้องเท่าเดิมซะอีก 5555(ล้อเล่นนะครับ)
1.น่าจะแยก room ออกไปอีกหน้าหนึ่งนะครับ
2.textbox room ได้ Binding ไว้รึป่าว(เพราะ ID_room ไม่ถูกบันทึก)
3. ถ้า room มี status ว่าง/ไม่ว่าง จะดีมากครับ จากหน้านี้เปิดไปที่หน้าเลือกห้องแล้วสามารถดูได้ว่าห้องไหน ว่าง/ไม่ว่าง (อาจจะทำเป็นสีๆ)
Date :
2016-10-16 09:29:19
By :
lamaka.tor
ถ้า MS Access แนะนำให้ Build ให้เป็น x86 ครับ
Date :
2016-10-17 13:15:25
By :
mr.win
ขอบคุณสำหรับคำตอบค่ะ มีเรื่องจะถามต่ออีกนิดค่ะคือว่า
ทำไมเวลาใส่รหัสห้องของคนล่าสุดแล้วมันไปอัพเดทของรหัสห้องคนแรกค่ะ
Date :
2016-10-24 00:14:08
By :
jun
Load balance : Server 00