vb 如何在对Access创建新字段(列)的过程中自动添加该列的缺省值

搞了一下午,终于解决了,希望能帮助到他人。

'通用-声明
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql$
'连接Data.mdb数据库
Public Sub openConn()
   conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\Data.mdb;Uid=;Pwd=123;"
End Sub
'关闭Data.mdb数据库
Public Sub closeConn()
   conn.Close
End Sub
'查找Data.mdb数据库是否存在某列字段,若不存在则添加
Sub AddColIfNotExists(tblName As String, colName As String, colType As String, DefaultValue As String)
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim cnStr As String, sqlStr As String
    Dim i As Integer, addCol As Boolean
    '此示例ACCESS数据库放在本VB程序同一目录下
    cnStr = "driver={Microsoft Access Driver (*.mdb)};dbq="
    cnStr = cnStr & App.Path & "\Data.mdb;Uid=;Pwd=123;"
    cn.Open cnStr
    rs.CursorLocation = adUseClient
    sqlStr = "select * from " & tblName & " where false;"
    rs.Open sqlStr, cn, adOpenStatic, adLockReadOnly
    addCol = True
    For i = 0 To (rs.Fields.Count - 1)
        If rs(i).Name = colName Then
            addCol = False
            Exit For
        End If
    Next i
    rs.Close
    Set rs = Nothing
    If addCol = True Then  '字段不存在才添加
        sqlStr = "alter table " & tblName
        sqlStr = sqlStr & " add column " & colName
        sqlStr = sqlStr & " " & colType & ";"
        cn.Execute sqlStr
        '设置缺省值
        Call AddDefaultValue(tblName, colName, DefaultValue)
    End If
    cn.Close
    Set cn = Nothing
End Sub
'查找Data.mdb数据库是否存在某列字段,若不存在则添加
Sub AddDefaultValue(tblName As String, colName As String, DefaultExt As String)
   '打开数据库
   Call openConn
   Dim AddValue As String
   AddValue = "select * from " & tblName
   rs.Open AddValue, conn, adOpenKeyset, adLockOptimistic
   Set rs = Nothing
   sql = "update " & tblName & " set " & colName & " = " & "'" & DefaultExt & "'"
   rs.Open sql, conn
   '关闭数据库
   Call closeConn
End Sub
'添加新列并设置该列缺省值
Private Sub Command1_Click()
  '(表名,新增字段,类型,缺省值)
  Call AddColIfNotExists("学生信息表", "添加的新字段", "varchar(50)", "abc")
End Sub

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

ajunajun

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值