数据库表格中新建字段

bitzl210 2007-06-18 01:51:28
由于新旧数据库的不同,怎样在程序启动时判断 access 数据库中名为 QH 的表格中是否还有 “切换点属性” 这一字段呢?
如果表中不存在,就需要新建这个字段。

那怎样才能做到呢?

谢谢
...全文
210 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
terrywolf 2007-07-08
  • 打赏
  • 举报
回复
顶起来!
三楼の郎 2007-06-18
  • 打赏
  • 举报
回复
靠! 晕,还没写对!

Public Function UpdateDB() As Boolean
On Error Resume Next
Dim strsql As String
Dim rs As New ADODB.Recordset
'查询表QH检查是否有字段"切换点属性",不返回记录
strsql = "select [切换点属性] from qh where 0=1"
rs.Open strsql, dbConnection, adOpenKeyset, adLockReadOnly
rs.Close
Set rs = Nothing

If Err.Number = 0 Then '检查是否发生了错误,没有错误表示QH表中有此字段
UpdateDB = True
Exit Function
Else
Err.Clear

'发生了错误表示没有此字段,通过ALTER TABLE语句追加此字段
strsql = "ALTER TABLE qh ADD [切换点属性] VARCHAR(20) NULL"
dbConnection.Execute strsql

If Err.Number <> 0 Then
UpdateDB = False
Else
UpdateDB = True
End If
End If
End Function
三楼の郎 2007-06-18
  • 打赏
  • 举报
回复
Sorry 有点小错误,
strsql = "ALTER COLUMN qh ALTER COLUMN [切换点属性] NVARCHAR(20) NULL"
应该是:
strsql = "ALTER table qh ALTER COLUMN [切换点属性] NVARCHAR(20) NULL"
guyehanxinlei 2007-06-18
  • 打赏
  • 举报
回复
遍历字段就可以了
For i = 0 To rs.Fields.Count - 1
If rs.Fields(i).Name = strFieldName Then
blnField = True
rs.Close
cn.Close
Exit Function
End If
Next
三楼の郎 2007-06-18
  • 打赏
  • 举报
回复
Public Function UpdateDB() As Boolean
On Error Resume Next
Dim strsql As String
Dim rs As New ADODB.Recordset
'查询表QH检查是否有字段"切换点属性",不返回记录
strsql = "select [切换点属性] from qh where 0=1"
rs.Open strsql, dbConnection, adOpenKeyset, adLockReadOnly
rs.Close
Set rs = Nothing

If Err.Number = 0 Then '检查是否发生了错误,没有错误表示QH表中有此字段
UpdateDB = True
Exit Function
Else
Err.Clear

'发生了错误表示没有此字段,通过ALTER TABLE语句追加此字段
strsql = "ALTER COLUMN qh ALTER COLUMN [切换点属性] NVARCHAR(20) NULL"
dbConnection.Execute strsql

If Err.Number <> 0 Then
UpdateDB = False
Else
UpdateDB = True
End If
End If
End Function
bitzl210 2007-06-18
  • 打赏
  • 举报
回复
各位帮忙看一下啊

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧