먼저 ADO 개체를 소개하겠습니다.
1. Access에 포함된 VBA는 ADO 기술을 사용하여 데이터베이스 응용 프로그램을 개발하는 주요 도구입니다.
2. 개체 모델에는 연결, 레코드 집합, 레코드, 명령, 매개 변수, 필드, 속성, 스트림, 오류 9개 개체가 포함됩니다.
관련 권장 사항: 액세스 데이터베이스 튜토리얼
3. 주요 ADO 개체 소개:
1) 연결 object: ADO 응용 프로그램과 데이터 소스 간의 연결을 구현하는 데 사용되는 개체 모델의 최상위 개체입니다.
2) 명령 개체: 주로 VBA의 SQL 문을 사용하여 데이터베이스의 데이터에 액세스하고 쿼리하고 수정합니다. Recordset 개체로 수행할 수 없는 작업(데이터 테이블 수준 작업)을 수행하려면 대신 DoCmd를 사용할 수 있습니다.
3) Recordset 개체: 테이블 및 쿼리 개체에 액세스할 수 있는 ADO에서 가장 일반적으로 사용되는 중요한 개체입니다. 레코드는 Recordset 개체에 저장됩니다.
① 데이터 테이블의 데이터를 쿼리합니다.
② 데이터 테이블의 데이터를 추가합니다.
④ 데이터 테이블의 특정 데이터를 삭제합니다.
Access에서 ADO 객체 참조
1. ADO 참조를 위한 단계: ①Connection 객체를 선언하고 초기화합니다. ②Recordset 객체를 생성하고 프로그래밍 방식으로 다양한 작업을 완료합니다.2. 연결 개체 선언 및 초기화
' 연결 개체 선언: 일반적으로 cn을 변수의 명명 접두사로 사용합니다.
Dim coName As ADODB.Connection
' 연결 개체를 초기화하고
Set cnName = CurrentProject.Connection
3. Recordset 개체 열기
1) Recordset 개체 선언 및 초기화
Dim rsName As ADODB.Recoreset set rsName = new ADODB.Recordset
2) Recordset 개체 열기
Recordset의 Open 메서드를 사용하여 데이터 테이블, 쿼리 개체를 열거나 SQL 쿼리 문을 직접 참조
rsName.Open source, ActiveConnection, CursorType,LockType,Option
4. 레코드세트 및 연결 개체 닫기
rsName.Close cnName.Close Set rsName = Nothing Set cnName = Nothing레코드세트 개체를 통해 레코드 필드 참조
1 필드를 참조하는 방법에는 두 가지가 있습니다. 레코드세트 개체의 필드 이름을 직접 참조하고, 필드(n) 속성 참조를 사용합니다.
Code = rsName!字段名
'는 필드의 첫 번째 레코드를 나타냅니다.
Code = rsName .Field(n)
'은 필드를 나타냅니다. n번째 레코드인 n은 0부터 시작하며 루프를 사용하여 필요한 레코드 수를 출력할 수 있습니다
2. 레코드 집합 필드에 공백이 포함되어 있거나 예약어인 경우 인용할 때 필드를 [ ]로 묶어야 합니다.
Recordset 개체를 통해 레코드 찾아보기
1 Recordset 레코드 집합 개체는 레코드를 탐색하는 4가지 방법을 제공합니다
2. BOF 및 EOF 속성은 각각 포인터가 파일의 시작과 끝에 있는지 여부를 기록합니다. 레코드 세트 포인터가 다음을 가리키는 경우 BOF와 EOF는 모두 false입니다. 양식 부분의 버튼 이벤트: 다음 레코드를 찾습니다.
Priavte Sub ComomndNext_Click() rsDemo.MoveNext If rsDemo。EOF Then rsDemo.MoveFirst End If End Sub3. Recordset 개체의 LockType 속성은 기본적으로 adLockReadOnly(읽기 전용)입니다. Passed Recordset 개체는 데이터를 편집합니다1. 레코드를 추가하려면1) 레코드 세트 AddNew 메서드를 호출하여 빈 레코드를 생성합니다
2) 빈 레코드의 각 필드에 값을 할당합니다.
3) 레코드 세트 Update 메서드를 사용하여 새 레코드를 업데이트하고 유지합니다.
'rsDemo 레코드 세트에 Id(int), Name(String), Age(int) 필드가 있다고 가정하여 레코드 추가 버튼 이벤트
Private Sub CommandAdd_Click() rsDemo.MoveLast '记录集指针移动到记录集最后 rsDemo.AddNew '添加一条新纪录 rsDemo ! Id = "123" rsDemo ! Name = "assad" rsDemo ! Age = "18" rsDemo.Update End Sub
2. Update 메소드를 사용하여 레코드를 수정하세요
1) 레코드 세트 수정이 필요한 레코드로 포인터를 이동합니다.
2) 레코드의 각 필드 값을 수정합니다.
3) 새 레코드를 업데이트하고 유지하려면 레코드 세트 업데이트를 사용합니다. '레코드 세트 +1에서 Age 필드의 모든 값을 수정합니다.
Private Sub UpdateAge() rsDemo.MoveFirst Do Dim Code as Integer Code = rsDemo ! Age rsDemo ! Age = Code +1 Loop Until rsDemo.EOF rsDemo.Update End Sub
3. 삭제 방법을 사용하여 레코드를 삭제합니다.
1) 삭제해야 하는 레코드로 레코드 세트 포인터를 이동합니다. ) 현재 레코드를 삭제하려면 삭제 메서드를 사용하세요.
3) 레코드를 현재 레코드로 지정합니다.
'删除rsDemo数据集中Age = "18" 的记录 Private Sub DeleteAge(Dim deleteAge as Integer) rsDemo.MoveFirst Do IF rsDemo ! Age == deleteAge Then rsDemo。Delete rsDemo。MoveNext End IF Loop Until rsDemo.EOF End Sub
참고: 레코드가 삭제된 후에는 Access에서 자동으로 다음 레코드를 현재 레코드로 만들지 않습니다. MoveNext 메서드를 사용하여 레코드 집합 포인터를 마지막 레코드에 배치해야 합니다.
Command/DoCmd 개체를 통해 SQL 명령을 사용합니다.
Access는 DoCmd 개체를 제공하고 해당 RunSOL 메서드는 VBA에서 SQL 명령을 사용할 수 있습니다. :
DoCmd.RunSQL "SQL命令"
1. 데이터 정의
1) 데이터 테이블 생성
형식: 테이블 생성 테이블 이름(필드 이름 데이터 유형...)
예: DoCmd.RunSQL "테이블 생성 대학원생(이름 텍스트( 6), 연령 바이트, 입학 날짜)"
2) 필드 추가
형식: Alter Table 테이블 이름 필드 이름 추가 데이터 유형
如:DoCmd.RunSQL "Alter Table student Add 学费 currency"
3)改变字段类型
格式: Alter Table 表名 Alter 字段名 新数据类型
如:DoCmd.RunSQL "Alter Table student Alter 年龄 integer"
4)改变字段宽度
格式: Alter Table 表名 Alter 字段名 新宽度
如:DoCmd.RunSQL "Alter Table studnt Alter 姓名 text(6)"
5)删除一个字段
格式: Alter 表名 Drop 字段名
如: DoCmd.RunSQL "Alter student Drop 年龄"
6)删除一个数据表
格式: Drop Table 表名
如:DoCmd.RunSQL "Drop Table student"
7)修改数据表名字
格式: DoCmd.rename "新表名", acTable, "旧表名"
如:DoCmd.rename "学生", acTable, "student"
2、编辑数据
1)向表中追加数据
格式: Insert into 表名 Values(记录.....)
注: 字符串型数据用 ‘ ’, 日期型型数据可以 ‘ ’,或 # #;
如:DoCmd.RunSQL "Insert into student Values('李达',35,'2003-1-15') "
或:
Dim name As String Dim age As Byte, dates As Date name = InputBox("输入学生姓名") dates = InputBox("输入入学日期") ages = 17 DoCmd.RunSQL "Insert into student Values ('" & name & "'," & age & ",'" & dates & "')"
2)修改表中记录
格式: Update 表名 set 字段=数值 Where 限定条件
如:DoCmd.RunSQL "Update student set 年龄=20 Where 姓名='李达'"
3)删除待定记录
格式: Delete from 表名 where 限定条件
如: DoCmd.RunSQL "Delete from student where 姓名='李达'"
3、实现数据完整性约束
1)设置主键
格式: Alter Table 表名 Add Primary Key (字段名)
如:DoCmd.RunSQL "Alter Table 导师 Add Primary Key (导师编号)"
2)设置外键
格式: Alter Table 主表名 Add Foreign Key (字段名) References 从表名
如:DoCmd.RunSQL "Alter Table 研究生 Add Foreign Key (导师编号) References 导师"
4、执行查询操作
VBA程序中可以用SQL命令完成数据查询操作,但是无法直接将查询结果所返回的记录集按数据表的形式显示,解决方法有:
1)将查询结果的返回记录集生成一个新表保存在数据库中,然后用ADO记录集对象对这个表进行各种操作,完成后再删除这个表;
Docmd.runSQL "Select 姓名,职称,年龄 Into temp From 导师 Where 职称 in('教授','副教授')"
操作.....
rsTeacher.Close Docmd.runSQL "Drop Table temp"
2)将返回的记录集看成保存在内存中的一个临时表,用ADO记录集对象直接打开该查询指令;
访问当前数据库以外的数据库
1、Access提供了Connection.Open方法以连接另一个数据库
2、格式: Connection对象.Open "Provider=提供者;Date Source=数据库名;User ID=用户;PassWord=密码"
3、其中提供者为 Microsoft.Jet.OLEDDB.4.0;数据库名包括 数据库所在的路径(包括.mdb文件名)。
위 내용은 ADO 기술을 사용하여 액세스 데이터베이스를 운영하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!