是否可以将Sqlite数据库嵌入到excel 2007文件中(zip存档)
我正在开发一个需要数据库后端的excel应用程序.我的偏好是使用SQLite 3并使其尽可能无缝和便携,以供最终用户使用.
最近我了解到Excel 2007文件只是一个带有xlsm扩展名的zip存档.我的问题是,我可以将我的后端SQLite 3数据库存储在Zip存档中,并使用ODBC与数据库进行交互.如果是这样,任何人都可以向我指出一些背景信息,文章,实现这一目标的指导.这种方法是否有任何缺点或者我应该知道更好的替代方案. 感谢您的输入. 一些笔记.到目前为止,还没有人抱怨该文件没有打开.请注意,Excel文件在运行ADO代码之前保存.很隐蔽: ThisWorkbook.Worksheets("Courses").Visible = xlVeryHidden ThisWorkbook.Worksheets("System").Visible = xlVeryHidden 一段代码: Const gCN = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" < …> Set rs = CreateObject("ADODB.Recordset") Set cn = CreateObject("ADODB.Connection") Set fs = CreateObject("Scripting.FileSystemObject") scn = gCN & ThisWorkbook.FullName _ & ";Extended Properties=""Excel 8.0;HDR=Yes;"";" cn.Open scn ''If they do not have an ID,they do not exist. sSQL = "SELECT ID,FirstName,LastName," _ & "CourseName,AdditionalText,Format(ExpiryDate,'dd/mm/yyyy') As ExpiryDate " _ & "FROM [Applicants$] WHERE DateCancelled Is Null AND ID Is Not Null " _ & "AND (FirstName Is Null OR LastName Is Null Or CourseName Is Null " _ & "Or ExpiryDate Is Null) " & sWhere rs.Open sSQL,cn 参考文献: Excel ADO Jet可用的大多数方法都可以与Excel一起使用 Fundamental Microsoft Jet SQL for Access 2000 编辑重新评论 我没有发现泄漏特别糟糕,但我没有进行多次迭代,这是一台非常好的机器. 下面的代码使用DAO,它不会导致内存泄漏. 'Reference: Microsoft Office 12.0 Access Database Engine Object Library Dim ws As DAO.Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim sDb As String Dim sSQL As String sDb = ActiveWorkbook.FullName Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase(sDb,False,True,"Excel 8.0;HDR=Yes;") sSQL = "SELECT * FROM [Sheet1$];" Set rs = db.OpenRecordset(sSQL) Do While Not rs.EOF For i = 0 To rs.Fields.Count - 1 Debug.Print rs.Fields(i) Next rs.MoveNext Loop rs.Close db.Close ws.Close 'Release objects from memory. Set rs = Nothing Set db = Nothing Set ws = Nothing 致谢:http://www.ozgrid.com/forum/showthread.php?t=37398 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |