1.用OLEDB接口和Access数据库的一个表建立Table对象.通过一下代码我们可以把Access表设置为MO中的table表对象来调用:
Private Sub Command1_Click()
Dim pTable As MapObjects2.Table '建立一Mo table表对象
Dim Str1 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\..\Data.mdb" '设置数据源
Set pTable = New MapObjects2.Table
pTable.Database = Str1
pTable.Name = "TableName" '指定数据表名
MsgBox pTable.Records.TabLEDesc.FieldName(0)
End Sub
2.使用AddRelate和RemoveRelate方法
如果要将"本地图层"(非sde表)和数据库中的数据表关联.就要用到AddRelate方法.其语法是
object.AddRelate( toField, sourceTable, fromField,[checkFields as Boolean])
object:对象,一般为Maplayer对象.
toField:Object对象的相关字段
sourceTable:要关联的table表对象.
fromField:Table表中字段.
checkfield:可选,判断是否进行相关检查,默认为True.
(1).Addrelate方法返回一个包含Maplayer的所有记录,其字段为原所有字段加上Table表中的字段和符合的相关数据
(2).除了相关字段外,Table中的字段名应和Maplayer的字段名不同.
一旦建立关联,可以用Object.RemoveRelate删除关联.以下是利用该方法来建立图层与table表的关联实例代码,具体可参考mo的帮助.
Dim fName As String, dName As String
Dim pTable As New MapObjects2.Table
Dim pLayer As MapObjects2.MapLayer
Dim pFName As String
...
Set pLayer = Map1.Layers(0) '建立图层对象
pFName = "FIPS_CODE"
...
pTable.Database = "dBase IV;DATABASE=" + Str2 '设置数据源
pTable.Name = "demog"  






