引用DAO实现,例如:
'text 为从文本文件中读出的内容
sub test(text)
Dim iDb As DAO.Database
Dim iQuery As DAO.QueryDef
Set iDb = Workspaces(0).OpenDatabase("f:\My Documents\db1.mdb", True, False, ";pwd=") '打开数据库
Set iQuery = iDb.QueryDefs("视图名") '打开要更改的视图
debug.print iQuery.sql '显示以前的SQL
iQuery.sql=Text '新的SQL语句
end sub
'text 为从文本文件中读出的内容
sub test(text)
Dim iDb As DAO.Database
Dim iQuery As DAO.QueryDef
Set iDb = Workspaces(0).OpenDatabase("f:\My Documents\db1.mdb", True, False, ";pwd=") '打开数据库
Set iQuery = iDb.QueryDefs("视图名") '打开要更改的视图
debug.print iQuery.sql '显示以前的SQL
iQuery.sql=Text '新的SQL语句
end sub
在access中可能没办法直接修改,但可以间修改,我在问一问我的朋友,有的话我在告诉你
Public Sub AlterView(txt As String)
Dim sql As String
sql = "drop table t_view"我 ‘删除视图表
cn.Execute (sql)
'建新视图可以用你从文本文件中读取过来的语句替换下面的sql
sql = "create view t_view as select * from main where age =45"
cn.Execute (sql)
End Sub
/*--------------------------------------------------------
ADOX 是对 ADO 对象和编程模型的扩展。ADOX 包括用于模式创建和修改的对象,以及安全性。由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中的差异无关。
ADOX 是核心 ADO 对象的扩展库。它显露的其他对象可用于创建、修改和删除模式对象,如表格和过程。它还包括安全对象,可用于维护用户和组,以及授予和撤消对象的权限。
------------------------------------------------------*/
只能用楼上的间接修改方法,如果是SQL SERVER数据库,也可以用ADO,用"alter view……"实现。下面给出ADOX的实现例子:
Public Sub test()
Dim iConcStr$
Dim iDb As New ADOX.Catalog
Dim iCmd As New ADODB.Command
'数据连接字符串
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\My Documents\db1.mdb;Persist Security Info=False"
'打开数据源
iDb.ActiveConnection = iConcStr
'打开要修改的视图
Set iCmd = iDb.Views("视图").Command
'显示视图的原来SQL语句
Debug.Print iCmd.CommandText
'设置新的SQL语句
iCmd.CommandText = "select * from 表"
'应用修改
Set iDb.Views("视图") = iCmd
End Sub