直接通过DAO读写Access文件
直接 利用DAO来创建、读写Access 文件 ,总的说来,对比上篇《 直接 通过 ODBC读、写Excel 文件 》来讲,要简单一些。在下面的示例中,我们将用到两种方法:SQL和DAO类函数来混合实现它们,这样做的目地,我想可以使大家更加方便灵活的运用它们来完成你想要
直接利用DAO来创建、读写Access文件,总的说来,对比上篇《直接通过ODBC读、写Excel文件》来讲,要简单一些。在下面的示例中,我们将用到两种方法:SQL和DAO类函数来混合实现它们,这样做的目地,我想可以使大家更加方便灵活的运用它们来完成你想要做的东西。在示例程序中默认指定创建数据库名为:Demo.mdb,内部表名为:DemoTable,写入两个字段:名字和年龄,采用和上一篇读写Excel类似的操作,你也可以根据自己需要来动态改变它们。示例程序运行界面如下所示:

下面让我们来简要看看它的实现步骤:
1. 首先,应确保包含进了afxdao.h头文件,可以在StdAfx.h文件中包含它,如下:
#include <afxdao.h> //加入DAO数据库支持</afxdao.h>
2. 声明DAO库及其记录集变量,可在你的实现文件中加入下面代码: CDaoDatabase db; //数据库<br>CDaoRecordset RecSet(&db); //记录集
3. 接着,先让我们来实现它的创建及写入操作void CRWAccessDlg::OnWriteAccess()<br>{<br> //获取主程序所在路径,存在sPath中<br> CString sPath;<br> GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);<br> sPath.ReleaseBuffer ();<br> int nPos;<br> nPos=sPath.ReverseFind (''\\'');<br> sPath=sPath.Left (nPos);<br> //默认创建数据名:Demo.mdb,内部表名:DemoTable,表内有二个字段:姓名、年龄<br> CString lpszFile = sPath + "\\Demo.mdb";<br> <br> CFileFind fFind;<br> BOOL bSuccess;<br> bSuccess=fFind.FindFile(lpszFile);<br> fFind.Close ();<br> //是否已有创建好的Demo.mdb<strong>文件</strong>,没有则创建它<br> if(!bSuccess)<br> {<br> db.Create(lpszFile);<br> CString SqlCmd = "CREATE TABLE DemoTable(Name VARCHAR(20),Age VARCHAR(3));";<br> db.Execute(SqlCmd);<br> <br> //打开已创建的数据表<br> RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,<br> "SELECT * FROM DemoTable", 0);<br> //加入第一个记录,用SQL语句<br> db.Execute("INSERT INTO DemoTable (Name,Age) VALUES (''徐景周'',26)");<br> <br> //加入第二个记录,用DAO涵数<br> RecSet.AddNew();<br> RecSet.SetFieldValue("Name","徐志慧");<br> RecSet.SetFieldValue("Age","21");<br> RecSet.Update();<br> <br> //加入第三个记录,用DAO涵数<br> RecSet.AddNew();<br> RecSet.SetFieldValue("Name","郭徽");<br> RecSet.SetFieldValue("Age","27");<br> RecSet.Update();<br> <br> //关闭记录集及库<br> RecSet.Close();<br> db.Close();<br> AfxMessageBox("Access<strong>文件</strong>写入成功!");<br> }<br> else<br> AfxMessageBox("Demo.mdb数据库已经创建!");<br> <br>}
4. 最后,让我们来实现它的读取操作。void CRWAccessDlg::OnReadAccess()<br>{<br> COleVariant var; // 字段类型<br> var.ChangeType(VT_BSTR, NULL);<br> CString strName,strAge,strFile;<br> //清空列表框<br> m_AccessList.ResetContent();<br> //获取主程序所在路径,存在sPath中<br> CString sPath;<br> GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);<br> sPath.ReleaseBuffer ();<br> int nPos;<br> nPos=sPath.ReverseFind (''\\'');<br> sPath=sPath.Left (nPos);<br> strFile = sPath + "\\demo.mdb";<br> db.Open(strFile); // 打开已创建的demo数据库及DamoTable表<br> RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DemoTable",NULL);<br> while(!RecSet.IsEOF()) // 有没有到表结尾<br> {<br> RecSet.GetFieldValue("Name",var);<br> strName = (LPCSTR)var.pbstrVal;<br> RecSet.GetFieldValue("Age",var);<br> strAge = (LPCSTR)var.pbstrVal;<br> m_AccessList.AddString( strName + " --> "+strAge );<br> RecSet.MoveNext();<br> }<br> //关闭记录集及库<br> RecSet.Close();<br> db.Close();<br>}
以上部分代码的具体实现的细节问题,可在下载实例代码后,仔细查看源码既可(内有详细注释)。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

1、在Windows11中打开设置。您可以使用Win+I快捷方式或任何其他方法。2、转到应用程序部分,然后单击应用程序和功能。3、查找要阻止在后台运行的应用程序。单击三点按钮并选择高级选项。4、找到【后台应用程序权限】部分并选择所需的值。默认情况下,Windows11设置电源优化模式。它允许Windows管理应用程序在后台的工作方式。例如,一旦启用省电模式以保留电池,系统将自动关闭所有应用程序。5、选择【从不】可防止应用程序在后台运行。请注意,如果您注意到程序不向您发送通知、无法更新数据等,您可

DeepSeek 无法直接将文件转换为 PDF。根据文件类型,可以使用不同方法:常见文档(Word、Excel、PowerPoint):使用微软 Office、LibreOffice 等软件导出为 PDF。图片:使用图片查看器或图像处理软件保存为 PDF。网页:使用浏览器“打印成 PDF”功能或专用的网页转 PDF 工具。不常见格式:找到合适的转换器,将其转换为 PDF。选择合适的工具并根据实际情况制定方案至关重要。

您在尝试使用应用程序时是否收到“无法允许访问摄像头和麦克风”?通常,您可以在需要提供的基础上向特定对象授予摄像头和麦克风权限。但是,如果您拒绝权限,摄像头和麦克风将无法工作,而是显示此错误消息。解决这个问题是非常基本的,你可以在一两分钟内完成。修复1–提供相机、麦克风权限您可以直接在设置中提供必要的摄像头和麦克风权限。步骤1–转到“设置”选项卡。步骤2–打开“隐私与安全”面板。步骤3–在那里打开“相机”权限。步骤4–在里面,您将找到已请求手机相机权限的应用程序列表。步骤5–打开指定应用的“相机”

在Java中,"field"是类或接口中的数据成员,用于存储数据或状态。field的属性包括:类型(可为任何Java数据类型)、访问权限、static(属于类而非实例)、final(不可变)和transient(不序列化)。field用于存储类或接口的状态信息,例如存储对象数据和维护对象状态。

Oracle 可以通过以下步骤读取 dbf 文件:创建外部表,引用 dbf 文件;查询外部表,检索数据;将数据导入 Oracle 表。

Java反射机制允许程序动态修改类的行为,无需修改源代码。通过Class对象操作类,可以通过newInstance()创建实例,修改私有字段值,调用私有方法等。但应谨慎使用反射,因为它可能会导致意外的行为和安全问题,并有性能开销。

Java函数开发中常见的异常类型及其修复措施在Java函数开发过程中,可能遇到各种异常,影响函数的正确执行。以下是常见的异常类型及其修复措施:1.NullPointerException描述:当访问一个还未初始化的对象时抛出。修复措施:确保在使用对象之前对其进行非空检查。示例代码:try{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){

在 Vue 中解决 iframe 跨域问题的方法:CORS:启用后端服务器中的 CORS 支持,在 Vue 中使用 XMLHttpRequest 或 fetch API 发送 CORS 请求。JSONP:使用后端服务器中的 JSONP 端点,在 Vue 中动态加载 JSONP 脚本。代理服务器:设置代理服务器转发请求,在 Vue 中使用第三方库(如 axios)发送请求并设置代理服务器 URL。
