• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
在VB6中用
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
在VB6中用 Select 语句检索记录
软件发布 在VB6中用 Select 语句检索记录
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 编程技术 | VB & VB.NET教程 | 在VB6中用 Select 语句检索记录

在VB6中用 Select 语句检索记录

 

添加时间: 2006-2-17 3:40:43  作者: VB教程  阅读次数:246   来源: http://www.d9soft.com

 

 

       

  本文向你介绍如何不用借助Access,直接在程序中创建一个数据库,然后从标准的ASCII文本文件中读取数据到数据库中。原文是微软知识库中的一篇文章,但当时是针对VB3写的,所以其中的代码有点过时。例如现在DAO中已没有Table对象,代之以Recordset对象。下面是修改后的代码,在VB6中调试通过。

  首先在工程中添加对Microsoft DAO 3.51 Library引用。

  在窗体中添加三个命令按钮和两个MSFlexGrid.

  按照下表设置和控件的属性:

  控件 属性 值

  Command1 Caption "建立文本文件并显示在网格中"

  Command2 Caption "传输入数据并新建一个数据库"

  Command3 Caption "显示新数据库中的数据"

  Grid1 Cols 5

  Grid1 Rows 35

  Grid2 Cols 5

  Grid2 Rows 35

  将下面的代码添加到窗体的声明部分

  Dim nums(30) As Long

  Dim names(30) As String * 20

  Dim addresses(30) As String * 25

  Dim ss_nums(30) As String * 12

  Const DB_LONG = 4

  Const DB_TEXT = 10

  Const DB_LANG_GENERAL = ";LANGID=0x0809;CP=1252;COUNTRY=0"

  将下面的代码添加到窗体的Load事件中

  Sub Form_Load ()

  Show

  grid1.ColWidth(1) = 1000 'For Emp ID

  grid1.ColWidth(2) = 2000 'For Emp Name

  grid1.ColWidth(3) = 3000 'For Emp Addr

  grid1.ColWidth(4) = 2000 'For Emp SSN

  grid1.Col = 1

  grid1.Row = 0

  grid1.Text = "Emp ID" 'Header for Emp ID from text file

  grid1.Col = 2

  grid1.Row = 0

  grid1.Text = "Emp Name" 'Header for Emp Name from text file

  grid1.Col = 3

  grid1.Row = 0

  grid1.Text = "Emp Addr" 'Header for Emp Addr from text file

  grid1.Col = 4

  grid1.Row = 0

  grid1.Text = "Emp SSN" 'Header for Emp SSN from text file

  grid2.ColWidth(1) = 1000 'For Emp ID

  grid2.ColWidth(2) = 2000 'For Emp Name

  grid2.ColWidth(3) = 3000 'For Emp Addr

  grid2.ColWidth(4) = 2000 'For Emp SSN

  grid2.Col = 1

  grid2.Row = 0

  grid2.Text = "Employee ID" 'Header for Emp ID from DB

  grid2.Col = 2

  grid2.Row = 0

  grid2.Text = "Employee Name" 'Header for Emp Name from DB

  grid2.Col = 3

  grid2.Row = 0

  grid2.Text = "Employee Addr" 'Header for Emp ID from DB

  grid2.Col = 4

  grid2.Row = 0

  grid2.Text = "Employee SSN" 'Header for Emp Name from DB

  End Sub

  (未完)

  在Command1_Click事件中加入下面的代码

  Sub Command1_Click ()

  For i% = 1 To 30

  nums(i%) = i%

  names(i%) = "John Doe # " + Str$(i%)

  addresses(i%) = Str$(i%) + " Mocking Bird Lane"

  If i% < 9 Then

  '* Enter the following four lines as one, single line:

  ss_nums(i%) = Trim$(Str$(i%) + Trim$(Str$(i%))+ Trim$(Str$(i%)) + "-" + Trim$(Str$(i% + 1))+ Trim$(Str$(i% + 1)) + "-" + Trim$(Str$(i%))

  + Trim$(Str$(i%)) + Trim$(Str$(i%)) + Trim$(Str$(i%)))

  Else

  '* Enter the following two lines as one, single line:

  ss_nums(i%) = Trim$(Trim$(Str$(999)) + "-" + Trim$(Str$(88))+ "-" + Trim$(Str$(7777)))

  End If

  Next i%

  Open "Testdata.DAT" For Output As #1

  For j% = 1 To 30

  Print #1, nums(j%)

  Print #1, names(j%)

  Print #1, addresses(j%)

  Print #1, ss_nums(j%)

  Next j%

  Close #1

  For i% = 1 To 30 'Display results from text file

  grid1.Col = 1

  grid1.Row = i%

  grid1.Text = nums(i%) 'Load Emp IDs

  grid1.Col = 2

  grid1.Row = i%

  grid1.Text = names(i%) 'Load Emp Names

  grid1.Col = 3

  grid1.Row = i%

  grid1.Text = addresses(i%) 'Load Emp Addrs

  grid1.Col = 4

  grid1.Row = i%

  grid1.Text = ss_nums(i%) 'Load Emp SSNs

  Next i%

  End Sub

  在Command2_Click事件中加入下面的代码

  Sub Command2_Click ()

  Dim newdb As Database

  Dim newtb As Recordset

  Dim newtd As New tabledef

  Dim newidx As New Index

  Dim field1 As New field 'For Emp nums

  Dim field2 As New field 'For Emp names

  Dim field3 As New field 'For Emp addresses

  Dim field4 As New field 'For Emp ss_nums

  screen.MousePointer = 11 'Display the time to build

  

  Set newdb = CreateDatabase("NEWDB.MDB", DB_LANG_GENERAL)

  

  newtd.Name = "Emp_Table" '* New table name

  field1.Name = "Emp_ID" '* Holds Employee ID nums()

  field1.Type = DB_LONG

  newtd.Fields.Append field1

  field2.Name = "Emp_Name" '* Holds Emp names()

  field2.Type = DB_TEXT

  field2.Size = 20

  newtd.Fields.Append field2

  field3.Name = "Emp_Addr" '* Holds Employee addr()

  field3.Type = DB_TEXT

  field3.Size = 25

  newtd.Fields.Append field3

  field4.Name = "Emp_SSN" '* Holds emp ss_nums()

  field4.Type = DB_TEXT

  field4.Size = 12

  newtd.Fields.Append field4

  newidx.Name = "Emp_ID_IDX" '* You have to have an index

  newidx.Fields = "Emp_ID"

  newidx.Primary = True

  newtd.Indexes.Append newidx

  newdb.TableDefs.Append newtd

  Set newtb = newdb.OpenRecordset("Emp_Table")

  Open "Testdata.dat" For Input As #1

  BeginTrans

  Do While Not (EOF(1))

  newtb.AddNew

  Line Input #1, tmp1$ 'Retrieve empl_id

  Line Input #1, tmp2$ 'Retrieve empl_name

  Line Input #1, tmp3$ 'Retrieve empl_addr

  Line Input #1, tmp4$

  newtb("Emp_ID") = Trim$(tmp1$) 'Place in field1

  newtb("Emp_Name") = Trim$(tmp2$) 'Place in field2

  newtb("Emp_Addr") = Trim$(tmp3$) 'Place in field3

  newtb("Emp_SSN") = Trim$(tmp4$) 'Place in field4

  newtb.Update 'Save to table

  Loop

  CommitTrans

  Close #1 'Close text file

  newtb.Close 'Close DB's table

  newdb.Close 'Close DB

  screen.MousePointer = 0 'Set back to show done

  End Sub

  在Command3_Click事件中加入下面的代码

  Sub Command3_Click ()

  Dim db As Database

  Dim t As Recordset

  Dim counter%

  Set db = OpenDatabase("NEWDB.MDB")

  Set t = db.OpenRecordset("Emp_Table")

  counter% = 1 'Start counter at Row=1

  Do Until t.EOF

  grid2.Col = 1

  grid2.Row = counter%

  grid2.Text = t(0) 'Load Emp ID

  grid2.Col = 2

  grid2.Row = counter%

  grid2.Text = t(1) 'Load Emp Name

  grid2.Col = 3

  grid2.Row = counter%

  grid2.Text = t(2) 'Load Emp Addr

  grid2.Col = 4

  grid2.Row = counter%

  grid2.Text = t(3) 'Load Emp SSN

  counter% = counter% + 1

  t.MoveNext

  Loop

  t.Close

  db.Close

  End Sub

 

 

 

上下文章:

 

上一篇文章: 导出EXCEL/FOXPRO/PRODOX格式表 下一篇文章: 用DAO或ADO正确访问Access 2000

相关文章:

  • 盗号记录器通过钩子专盗网络游戏账号
  • Oracle10.2g安装记录
  • PL/SQL用光标查询多条记录
  • Case语句在进销存系统的应用
  • 怎样看oracle查询语句执行计划

相关软件:

  • 鼠标键盘记录回放器 V2.63
  • 新概念英语句霸 V5.15
  • 密码记录大师 V2008 Build 0624
  • 悠迅鼠标记录器 V1.2
  • QQ聊天记录备份软件 V1.2
  • qq聊天记录器 V3.0 情景再现版

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库
  • 用DAO或ADO正确访问Access 2000

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 初学者必知:VB10个小编程
  • 如何编写高质量的VB代码
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • 第二章 PowerBuilder 入门之创建新...
  • Java连接数据库实例
  • 第一章 什么是PowerBuilder
  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有