Dtype = vbCrLf & "OLE 對(duì)象-128" & vbCrLf & "備注-130" & vbCrLf & "超鏈接-130" & vbCrLf & "貨幣-6" & vbCrLf & "日期/時(shí)間-7" & vbCrLf & "是/否-11" & vbCrLf & "數(shù)字-3" & vbCrLf & "文本-130" & vbCrLf & "自動(dòng)編號(hào)-3" Sub 連接mdb() '打開(kāi)數(shù)據(jù)庫(kù)連接 Dbpath = ThisWorkbook.Path & "\my數(shù)據(jù)庫(kù).mdb" With Cn .Provider = "microsoft.jet.oledb.4.0" .ConnectionString = "data source=" & Dbpath & ";jet oledb:database password=" & "88547913" .CursorLocation = adUseClient .Open End With End Sub Sub 顯示數(shù)據(jù)庫(kù)所有表() If Cn.State = adStateClosed Then Call 連接mdb Dim RS As ADODB.Recordset Set RS = Cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "table")) Do Until RS.EOF Set rsColumn = Cn.OpenSchema(4, Array(Empty, Empty, RS("Table_Name").Value)) Do Until rsColumn.EOF mn = mn & vbCrLf & "字段名:" & rsColumn("Column_Name") & vbTab & "類(lèi)型:" & getDataType(rsColumn("Data_Type")) & "," rsColumn.MoveNext Loop MsgBox "表--" & RS!TABLE_NAME & mn mn = "" RS.MoveNext Loop End Sub Sub 顯示數(shù)據(jù)庫(kù)字段名() If Cn.State = adStateClosed Then Call 連接mdb tnstr = InputBox("請(qǐng)輸入表名") Set rsColumn = Cn.OpenSchema(4, Array(Empty, Empty, tnstr)) Do Until rsColumn.EOF cnstr = cnstr & rsColumn!column_Name & "-" & rsColumn("Data_Type") & "," rsColumn.MoveNext Loop nn = MsgBox(cnstr, vbYesNo, "表--" & tnstr) Strtextt = cnstr Call 寫(xiě)文本 End Sub Function getDataType(typeId) On Error Resume Next Select Case typeId Case 130 getDataType = "文本" Case 131 getDataType = "數(shù)值" Case 2 getDataType = "整型" Case 3 getDataType = "長(zhǎng)整型" Case 7 getDataType = "日期 / 時(shí)間" Case 5 getDataType = "雙精度型" Case 11 getDataType = "是 / 否" Case 128 getDataType = "OLE 對(duì)象" Case Else getDataType = typeId End Select End Function Sub 創(chuàng)建mdb表() On Error Resume Next If Cn.State = adStateClosed Then Call 連接mdb Strname = InputBox("請(qǐng)輸入要?jiǎng)?chuàng)建的表名") Sql = "CREATE TABLE " & Strname & " (" & InputBox("字段名") & " " & InputBox("類(lèi)型" & Dtype) & ")" Cn.Execute (Sql) 'rs.Open Sql, Cn Cn.Close Set Cn = Nothing End Sub Sub 刪除mdb表() If Cn.State = adStateClosed Then Call 連接mdb Strname = InputBox("請(qǐng)輸入要?jiǎng)?chuàng)建的表名") Sql = "DROP Table " & Strname Cn.Execute (Sql) Cn.Close Set Cn = Nothing End Sub Sub 添加字段() If Cn.State = adStateClosed Then Call 連接mdb tnstr = InputBox("請(qǐng)輸入表名") Sql = "ALTER TABLE " & tnstr & " ADD COLUMN " & InputBox("字段名") & " " & InputBox("字段類(lèi)型--例如" & Dtype & Text(2)) Rst.Open Sql, Cn, adOpenDynamic, adLockOptimistic Rst.Close: Set Rst = Nothing End Sub Sub 刪除字段() On Error Resume Next If Cn.State = adStateClosed Then Call 連接mdb tnstr = InputBox("請(qǐng)輸入表名") Sql = "Alter Table " & tnstr & " Drop Column " & InputBox("字段名") Cn.Execute (Sql) End Sub |
聯(lián)系客服