📄 form20.frm
字号:
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 285
Left = 2745
TabIndex = 4
Top = 1050
Width = 1890
End
Begin VB.Label Label1
Alignment = 2 'Center
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "导出项目:"
BeginProperty Font
Name = "楷体_GB2312"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 285
Left = 5625
TabIndex = 3
Top = 1050
Width = 1590
End
Begin VB.Image IMBar
Height = 255
Left = 0
Top = 0
Width = 10455
End
Begin VB.Image ImMin1
Height = 240
Left = 2760
Picture = "Form20.frx":121E0
Top = 4200
Visible = 0 'False
Width = 255
End
Begin VB.Image ImMin2
Height = 240
Left = 3120
Picture = "Form20.frx":12562
Top = 4200
Visible = 0 'False
Width = 255
End
Begin VB.Image ImClose2
Height = 240
Left = 3120
Picture = "Form20.frx":128E4
Top = 4680
Visible = 0 'False
Width = 255
End
Begin VB.Image ImClose1
Height = 240
Left = 2760
Picture = "Form20.frx":12C66
Top = 4680
Visible = 0 'False
Width = 255
End
Begin VB.Image Immax1
Height = 240
Left = 2760
Picture = "Form20.frx":12FE8
Top = 4440
Visible = 0 'False
Width = 255
End
Begin VB.Image Immax2
Height = 240
Left = 3120
Picture = "Form20.frx":1336A
Top = 4440
Visible = 0 'False
Width = 255
End
Begin VB.Image Immin
Height = 240
Left = 6720
ToolTipText = "最小化"
Top = 0
Width = 255
End
Begin VB.Image Immax
Height = 240
Left = 7080
ToolTipText = "最大化"
Top = 0
Width = 255
End
Begin VB.Image Imclose
Height = 240
Left = 7440
ToolTipText = "关闭"
Top = 0
Width = 255
End
Begin VB.Image Pbottom
Height = 195
Left = 120
MousePointer = 7 'Size N S
Stretch = -1 'True
Top = 6000
Width = 1785
End
Begin VB.Image Pright
Height = 5535
Left = 10560
MousePointer = 9 'Size W E
Top = 360
Width = 135
End
Begin VB.Image IMus0
Height = 240
Left = 3480
Picture = "Form20.frx":136EC
Top = 4200
Visible = 0 'False
Width = 255
End
Begin VB.Image IMus1
Height = 240
Left = 3480
Picture = "Form20.frx":13A6E
Top = 4440
Visible = 0 'False
Width = 255
End
Begin VB.Image IMus2
Height = 240
Left = 3480
Picture = "Form20.frx":13DF0
Top = 4680
Visible = 0 'False
Width = 255
End
Begin VB.Image Imico
Height = 240
Left = 2385
Picture = "Form20.frx":14172
Top = 3090
Visible = 0 'False
Width = 240
End
Begin VB.Image Pjiao
Height = 255
Left = 10200
MousePointer = 8 'Size NW SE
Top = 5640
Width = 255
End
End
Attribute VB_Name = "Form20"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'设置不规则窗体的API
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Const RGN_OR = 2
'拖动窗体的API
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1
'获得鼠标位置,用来改变窗体大小的
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
'
Dim Cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim Cnn1 As New ADODB.Connection
Dim rst1 As New ADODB.Recordset
Dim DBName As String '记录数据库名
Dim TBName As String '记录表名
Dim FieldName As String '记录字段名
Dim db As Boolean '记录打开的是表还是数据库
Private Sub ROButton11_Click()
'添加字段
FdName = InputBox("输入要添加的字段名:")
'保证打开数据库的时候不出错
If Cnn.State = adStateOpen Then Cnn.Close
If Cnn1.State = adStateOpen Then Cnn1.Close
Cnn1.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
'增加字段需要说明字段类型,这里暂时用STRING
Cnn1.Execute "ALTER TABLE " & TBName & " ADD COLUMN " & FdName & " String"
Cnn1.Close
'刷新DataGrid的数据,以便看到新字段
strSQL = "SELECT * FROM " & TBName
If Cnn.State = adStateOpen Then Cnn.Close
Cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
'With rst
' .CursorType = adOpenKeyset
' .LockType = adLockOptimistic
' .Open strSQL, Cnn, , , adCmdText
'End With
'Set DataGrid1.DataSource = rst
'DataGrid1.caption = Node & "(共" & rst.RecordCount & "条记录)"
Frame1.Visible = False
End Sub
Private Sub AddTable_Click()
'增加表
If Cnn1.State = adStateOpen Then Cnn1.Close
Cnn1.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
TName = InputBox("输入表名")
Cnn1.Execute "CREATE TABLE " & TName & " (ID TEXT)" '至少要一个字段
Cnn1.Close
'刷新TreeView
Dim dbs As Database
Set dbs = OpenDatabase(Text1.Text)
TreeView1.BorderStyle = 1 '确保边界是可视的。
TreeView1.style = tvwTreelinesPlusMinusPictureText
TreeView1.Nodes.Clear
Dim nodX As Node
Set nodX = TreeView1.Nodes.Add(, , "daaa", DBName, 1)
For i = 0 To dbs.TableDefs.Count - 1
bbB = UCase(dbs.TableDefs(i).Name)
If UCase(Mid(bbB, 1, 4)) <> "MSYS" Then
Set nodX = TreeView1.Nodes.Add("daaa", tvwChild, dbs.TableDefs(i).Name, dbs.TableDefs(i).Name, 2, 3)
nodX.EnsureVisible '显示所有节点。
End If
Next i
dbs.Close
Set dbs = Nothing
'清除DataGrid里面的内容
'DataGrid1.ClearFields
'DataGrid1.caption = ""
'DataGrid1.Refresh
End Sub
Private Sub Command1_Click()
'寻找ACCESS数据库
ROButton2.Enabled = True
ROButton3.Enabled = True
ROButton4.Enabled = True
ROButton5.Enabled = True
ROButton6.Enabled = True
ROButton10.Enabled = True
CommonDialog1.Filter = "ACCESS 文件(*.mdb)|*.mdb"
CommonDialog1.CancelError = True
On Error GoTo aa
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
'取得短的ACCESS数据库文件名
'Dim FSO As Scripting.FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
DBName = FSO.GetFileName(Text1.Text)
'刷新TreeView
Dim dbs As Database
Set dbs = OpenDatabase(Text1.Text)
TreeView1.BorderStyle = 1 '确保边界是可视的。
TreeView1.style = tvwTreelinesPlusMinusPictureText
TreeView1.Nodes.Clear
Dim nodX As Node
Set nodX = TreeView1.Nodes.Add(, , DBName, DBName, 1)
For i = 0 To dbs.TableDefs.Count - 1
bbB = UCase(dbs.TableDefs(i).Name)
If UCase(Mid(bbB, 1, 4)) <> "MSYS" Then
Set nodX = TreeView1.Nodes.Add(DBName, tvwChild, dbs.TableDefs(i).Name, dbs.TableDefs(i).Name, 2, 3)
nodX.EnsureVisible '显示所有节点。
End If
Next i
dbs.Close
Set dbs = Nothing
aa:
End Sub
'Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
''如果点击的是数据库,即不是表
'If db = True Then Exit Sub
'
''如果点击的是表,刷新DataGrid
'strSQL = "SELECT * FROM " & TBName & " order by " & rst.Fields(ColIndex).Name
'If Cnn.State = adStateOpen Then Cnn.Close
'Cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
'With rst
' .CursorType = adOpenKeyset
' .LockType = adLockOptimistic
' .Open strSQL, Cnn, , , adCmdText
'End With
'FieldName = rst.Fields(ColIndex).Name
'Set DataGrid1.DataSource = rst
'DataGrid1.caption = Node & "(共" & rst.RecordCount & "条记录)"
''此处不可写Cnn.Close否则 DataGrid就没有数据了
'End Sub
'Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
''删除列,在DataGrid点击列标头后点击右键
'If Button = 2 Then
''PopupMenu aa
'Frame2.Visible = True
'End If
'End Sub
Private Sub ROButton13_Click()
Frame2.Visible = False
If db = True Then Exit Sub
'保证打开数据库的时候不出错
If Cnn.State = adStateOpen Then Cnn.Close
If Cnn1.State = adStateOpen Then Cnn1.Close
'删除列
Cnn1.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
Cnn1.Execute "ALTER TABLE " & TBName & " DROP COLUMN " & FieldName
Cnn1.Close
strSQL = "SELECT * FROM " & TBName
If Cnn.State = adStateOpen Then Cnn.Close
Cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
'With rst
' .CursorType = adOpenKeyset
' .LockType = adLockOptimistic
' .Open strSQL, Cnn, , , adCmdText
'End With
''刷新DataGrid
'Set DataGrid1.DataSource = rst
'DataGrid1.caption = Node & "(共" & rst.RecordCount & "条记录)"
End Sub
Private Sub ROButton12_Click()
'保证打开数据库的时候不出错
Frame1.Visible = False
If Cnn.State = adStateOpen Then Cnn.Close
If Cnn1.State = adStateOpen Then Cnn1.Close
'删除表
Cnn1.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=" & Text1.Text
Cnn1.Execute "Drop TABLE " & TBName
Cnn1.Close
'刷新TreeView
Dim dbs As Database
Set dbs = OpenDatabase(Text1.Text)
TreeView1.BorderStyle = 1 '确保边界是可视的。
TreeView1.style = tvwTreelinesPlusMinusPictureText
TreeView1.Nodes.Clear
Dim nodX As Node
Set nodX = TreeView1.Nodes.Add(, , DBName, DBName, 1)
For i = 0 To dbs.TableDefs.Count - 1
bbB = UCase(dbs.TableDefs(i).Name)
If UCase(Mid(bbB, 1, 4)) <> "MSYS" Then
Set nodX = TreeView1.Nodes.Add(DBName, tvwChild, dbs.TableDefs(i).Name, dbs.TableDefs(i).Name, 2, 3)
nodX.EnsureVisible '显示所有节点。
End If
Next i
dbs.Close
Set dbs = Nothing
'清除DataGrid里面的内容
'DataGrid1.ClearFields
'DataGrid1.caption = ""
'DataGrid1.Refresh
End Sub
Private Sub Frame1_Click()
Frame1.Visible = False
End Sub
Private Sub Frame2_Click()
Frame2.Visible = False
End Sub
Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
'防止标签被编辑
Cancel = True
End Sub
Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then '右键
If db = True Then '点击的是数据库
PopupMenu cc
Else '否则
'PopupMenu bb '点击的是表
Frame1.Visible = True
End If
End If
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
List1.Clear
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -