|
WWW.DBIT.CN 2006-9-5 0:41:08 热度: |
|
|
(事先在窗体中添加一个文本框Text1和一个命令按钮Command1)
Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim command As New ADODB.command
Private Sub Command1_Click() Dim bm As String Dim sql As String If Text1.Text <>"" Then bm = Trim(Text1.Text) sql= "Select 编号,姓名,实发工资 Into " + bm + " From 工资表 Where 实发工资>2000" Set command.ActiveConnection = conn command.CommandText = sql command.Execute Else MsgBox "你必须输入一个名字" End If
Private Sub Form_Load() Dim str As String str = App.Path If Right(str, 1) <>"\" Then str = str + "\" End If pstr = "Provider=Microsoft.Jet.OLEDB.3.51;" pstr = pstr & "Persist Security Info=False;" pstr = pstr & "Data Source=" & str & "wage.mdb" conn.Open pstr rs.CursorLocation = adUseClient rs.Open "工资表", conn, adOpenKeyset, adLockPessimistic Set DataGrid1.DataSource = rs End Sub 当然,我们还可以把程序设计得更好,比如:让用户先在窗口中任意选择所需的字段和一些条件,然后再组合生成一个新表。但无论如何,这种操作只能在从原表的基础上产生一个新表,不能产生一个数据库文件,并且新表和原表放在同一个数据库中。
4: 建立新的数据库和表
前面讲到的方法有一定的局限性,它不能让用户产生自己所需的数据库文件,即使能产生数据表也只能在原有表的基础上生成。我们现在的目的就是让用户利用ADO对象在程序运行过程中创建数据库和表,就好象他利用Access来建立数据库和表一样。为此,我们应该引用对象库"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security"
我们不妨用一个实例来说明具体的操作过程和方法。我们的实例要达到目的是:在程序运行过程中建立一个数据库,数据库的名称由用户输入。然后在数据库中建立一个名为"MyTable"的数据表,数据表中有三个字段,它们分别是:"编号"(整数型)、 "姓名"(字符型,宽度为8)、"住址" (字符型,宽度为50),接着在数据表中添加一条记录,最后在DataGrid控件中把记录的内容显示出来,并且让用户在DataGrid控件中任意修改、添加记录。
首先在VB中新建一个窗体,然后在"工程"菜单中引用对象库"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security"。接着定义三个窗体级的对象变量和一个窗体级的字符串变量,它们的具体定义是:
Dim cat As New ADOX.Catalog '不用cat用另外一个名字也可以 Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim pstr As String '定义该变量是为了后面的书写方便 为了更灵活地创建数据库,我们可以在窗体中加入一个通用对话框、一个DataGrid控件,三个命令按钮,它们的标题分别是:创建数据库和表、查看、更新。通用对话框的作用是给用户输入数据库文件名和决定数据库的存放位置。 "创建数据库和表"命令按钮对应的代码是:
Private Sub Command1_Click() Dim fm As String 'fm变量用来获取用户输入的文件名 CommonDialog1.Filter = "MDB文件(*.mdb)|*.mdb|AllFiles(*.*)|*.*|" CommonDialog1.FilterIndex = 1 CommonDialog1.InitDir = "D:\Jthpaper" CommonDialog1.Flags = 6 CommonDialog1.Action = 2 If CommonDialog1.FileName = "" Then MsgBox "你必须输入一个文件名,请重新保存一次!" Exit Sub Else fm = CommonDialog1.FileName End If pstr = "Provider=Microsoft.Jet.OLEDB.4.0;" '不能把这里的4.0改为3.51 pstr = pstr & "Data Source=" & fm |
|
|
|
|
|
|
|
|
|