Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > มีปัญหาใในการสร้างไฟล์ .mdb ของ MS Access ครับ รบกวนผู้รู้ด้วยครับ



 

มีปัญหาใในการสร้างไฟล์ .mdb ของ MS Access ครับ รบกวนผู้รู้ด้วยครับ

 



Topic : 099096



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์




มีปัญหาในการสร้างไฟล์ .mdb ของMS Access ครับ ด้วยการ save เป็น2000-2003 แต่ไม่สามารถบันทึกได้ เนื่องจากไฟล์มีขนาดใหญ่ และมีการแนบไฟล์รูปเข้ามาด้วยจำนวนมาก ผู้รู้ท่านใดพอมีหนทาง ในการสร้างไฟล์ .mdbบ้างครับ ขอคำแนะนำด้วยครับ ขอบคุณครับ



Tag : Ms Access







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-08-14 15:59:48 By : maximumoflove View : 1456 Reply : 5
 

 

No. 1

Guest


อ่านแล้วงง งั้นเอาแค่สร้าง access ไปก่อนแล้วกัน

- add referance ado กับ adodb ก่อนโดย refer ไปที่ Interop.ADOX.dll กับ Interop.ADODB.dll

- สร้าง class ตามด้านล่าง

Code (C#)
    public class AccessManager
    {
        public static string ConnectionString(string filePath)
        {
            return string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Jet OLEDB:Engine Type=5", filePath);
        }

        public static bool Create(string filePath)
        {
            bool result;

            string connectionString = ConnectionString(filePath);

            try
            {
                ADOX.Catalog cat = new ADOX.Catalog();
                cat.Create(connectionString);

                //Now Close the database
                ADODB.Connection con = cat.ActiveConnection as ADODB.Connection;
                if (con != null)
                    con.Close();

                con = null;
                cat = null;

                result = true;
            }
            catch
            {
                result = false;
            }

            return result;
        }
    }


- แนะนำให้สร้าง access ใน backgroundworker เสร็จแล้วปิด backgroundworker ทิ้ง เพราะถ้าทำให้ thread ปกติ
มันจะ lock ไม่สามารถสร้าง connection ได้

- จากนั้นก็สร้าง connection ตามปกติได้เลย insert ข้อมูลตามปกติ แต่ access มัน limit size ไว้ 2G
ถ้าข้อมูลใหญ่ มากๆ แนะนำให้สร้าง 1 access ต่อ 1 table ไปเลย จะ join มันสามารถ join ข้ามไฟล์ได้






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-14 16:34:08 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 2

Guest


นานฯครั้งผมจะมีปัญหากับ MS Access วิธีสร้างผมไม่ทราบ แต่มันก็ยังใช้งานได้จน
ถึงทุกวันนี้ 2013-08-17

อันนี้เป็น SourceCode ที่ใช้งานจริงจนถึงทุกวันนี้ บน [color=red]Windows 7 64 Bit[/color]
(ไม่เคยมีปัญหาอะไร ยกเว้น เครื่องพัง +55555)

Code (VB.NET)
Imports JRO     'File Interop.JRO.dll
Imports ADODB   'File Interop.ADODB.dll

Public Class frmDBUtil

    Private Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, _
                                                                           ByVal lpNewFileName As String, _
                                                                           ByVal bFailIfExists As Integer) As Integer

    Private Sub btnCompactDB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCompactDB.Click
        If CompactDB("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\xDB.MDB;Jet OLEDB:Database Password=DB123;", "pwd123") Then
            'Success
        Else
            'Fail
        End If
    End Sub

    Private Function CompactDB(ByVal ConnStr As String, ByVal DbPassword As String) As Boolean
        Dim Suc As Boolean = False
        Try
            Dim dbSource, JetOLEDBPassword As String

            Using cn As New System.Data.OleDb.OleDbConnection(ConnStr)
                dbSource = cn.DataSource.ToString()
            End Using

            JetOLEDBPassword = DbPassword

            Dim dbName1 As String = dbSource.Substring(dbSource.LastIndexOf("\") + 1)
            Dim dbName2 As String = "Backup_" & dbName1
            Dim dbPath As String = dbSource.Substring(0, dbSource.LastIndexOf("\")) & "\"

            Dim fd As New System.IO.FileInfo(dbPath & dbName2)

            If fd.Exists Then
                fd.Delete()
            End If

            Dim jro As New JRO.JetEngine()

            jro.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbSource & ";Jet OLEDB:Database Password=" & _
                                JetOLEDBPassword & ";", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & dbName2 & _
                                ";Jet OLEDB:Database Password=" & JetOLEDBPassword & ";" & "Jet OLEDB:Engine Type=5")

            Dim iRet As Integer = apiCopyFile(dbPath & dbName2, dbSource, 0)

            If iRet = 1 Then
                Suc = True
            End If
        Catch ex As Exception
          ' MsgBox("Errror")
        End Try

        Return Suc

    End Function

End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-17 19:26:31 By : ผ่านมา
 

 

No. 3

Guest


Quote:
- แนะนำให้สร้าง access ใน backgroundworker เสร็จแล้วปิด backgroundworker ทิ้ง เพราะถ้าทำให้ thread ปกติ
มันจะ lock ไม่สามารถสร้าง connection ได้

- จากนั้นก็สร้าง connection ตามปกติได้เลย insert ข้อมูลตามปกติ แต่ access มัน limit size ไว้ 2G
ถ้าข้อมูลใหญ่ มากๆ แนะนำให้สร้าง 1 access ต่อ 1 table ไปเลย จะ join มันสามารถ join ข้ามไฟล์ได้


อย่าลืม ทำความเข้าใจกับ ตรงนี้ด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-17 19:34:44 By : ผ่านมา
 


 

No. 4

Guest


#NO 2 ผมเริ่มหัดเขียนโดยใช้ VS2005 โดยไม่ได้ตั้งใจ เขียนไปผมก็แขวะ .NET ไป (ช่วงนั้นปลายปลาย VS2003)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-17 19:48:02 By : ผ่านมา
 


 

No. 5



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-10 11:11:11 By : maximumoflove
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีปัญหาใในการสร้างไฟล์ .mdb ของ MS Access ครับ รบกวนผู้รู้ด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่