VB控件数组索引号在哪里设置

VB控件数组索引号在哪里设置,第1张

VB6.0控件数组索引号是在空间的属性窗口的Index 属性处设置。

Index 属性(控件数组),返回或设置唯一地标识控件数组中一个控件的编号。仅当控件是控件数组的元素时是有效的。

虽然缺省状态下 Visual Basic 分配下一个可用的整数作为控件数组中新的控件的 Index 的值,但也可以改变该分配值并跳过一些数。也可以为数组中的第一个控件的

Index 设一个非 0 的整数。如果在代码中引用一个 Index 的值而在控件数组中没有所标识的控件,那么将产生一个Visual Basic 运行时错误。

Index 属性区分控件数组中的元素。当数组中的一个控件识别了一个事件时,Visual Basic将调用公共事件过程并传递一个参数(Index 属性的值),分辨是哪个控件识别事件。

例如,Number_Click 事件过程的第一行代码是这样的:

Private Sub Number_Click (Index As Integer)

如果 Number(0) 识别事件,则 Visual Basic 将 0 作为 index 参数传递,而如果 Number(1) 识别事件,则 Visual Basic 将 1 作为 index 参数传递。

Index 属性示例

该例子开始时有两个 OptionButton 控件,并在每次单击 CommandButton 控件时在窗体中加入一个新的OptionButton。当单击一个 OptionButton 时,FillStyle

属性被设置并且画一个新的圆。要试用此例,将下面的代码粘贴到具有两个 OptionButton 控件、一个 CommandButton、以及一个大的 PictureBox

控件的窗体的声明部分之中。将两个 OptionButton 控件的 Name 属性都设置为 Option1

以创建一个控件数组。

Private Sub Option1_Click(Index As Integer)

  Dim H, W   '声明变量。

  Picture1.Cls   '清除图片。

  Picture1.FillStyle = Index   '设置 FillStyle。

  W = Picture1.ScaleWidth / 2   '获取圆的大小。

  H = Picture1.ScaleHeight / 2

  Picture1.Circle (W, H), W / 2   '画圆。

End Sub

Private Sub Command1_Click()

  Static MaxIdx   '数组中的最大索引值。

  If MaxIdx = 0 Then MaxIdx = 1   '预置 MaxIdx。

  MaxIdx = MaxIdx + 1   '索引值增加 1 。

  If MaxIdx >7 Then Exit Sub   '在窗体中放置八个按钮。

  Load Option1(MaxIdx)   '在数组中创建新的项。

  '在前一个按钮下面设置新选项按钮的位置。

  Option1(MaxIdx).Top = Option1(MaxIdx - 1).Top + 360

  Option1(MaxIdx).Visible = True   '使新的按钮可见。

End Sub

应该这样使用:

Dim NewTable As TableDef

Dim NewField As Field

Dim MyIdx As Index

Set NewTable = db.CreateTableDef(cName)

Set NewField = NewTable.CreateField("名称", dbText, 20)

NewTable.Fields.Append NewField '字段追加

Set NewField = NewTable.CreateField("子类数", dbText, 6)

NewTable.Fields.Append NewField '字段追加

'=========================================================

‘这四行不要了

'Set MyIdx = NewTable.CreateIndex("名称")'建立索引

'NewTable.Indexes.Append MyIdx '索引追加

'NewTable.Indexes("名称").Primary = True

'NewTable.Indexes("名称").Unique = True

'=========================================================

db.TableDefs.Append NewTable '表追加

'对"名称"字段创建单一的索引 NameID。

db.Execute "CREATE UNIQUE INDEX NameID ON " &cName &" (名称)"

MsgBox " 表建立完毕 "

在VB中,访问数据库一般有两种方式。一是非编码方式,主要通过Data等控件,可以不需要任何编程,只需简单设置控件的一些属性并结合文本框等普通控件即可方便地显示和 *** 作数据库中的数据。二是通过编写代码,即利用数据访问对象(DAO)来实现。虽然编写代码要花费更多的时间与精力,但却可以实现更灵活更复杂的 *** 作(如图1)。

首先介绍几个常用的VB数据库概念:

表(Table):即关系数据库中物理存在的二维表。VB的一个数据库文件可以包含相关的多个二维表。在成功打开一个数据库之后,必须打开一个表才能对其中的数据进行 *** 作。

记录集(RecordSet):来自表中的记录或者执行一个查询而产生的记录,这些记录就组成了一个记录的集合。在VB中数据库表中的数据不允许直接访问,而只能通过创建于内存中的这些记录集进行记录的浏览与 *** 作。

SQL语言:一种数据库管理中的通用结构化查询语言。

现在介绍一下VB中的“可视化数据管理器(Visual

Data

Manager)”。可视化数据管理器具有进行数据库的创建、查看、修改库结构以及输入记录等功能。下面介绍如何利用它建立一个完整的数据库文件。

一、创建表

1.

从“外接程序”选单中,选择“可视化数据管理器”,这时出现VisData可视化数据管理器窗口。分别移动鼠标指针到工具栏上的前三个按钮,系统会提示要以何种记录集类型来访问VB数据库:一是“表类型记录集”,二是“动态集类型记录集”,三是“快照类型记录集”。我们先选择“动态集类型记录集”。

2.

从“可视化数据管理器”的“文件”选单中选择“新建”,选择“MicroSoft

Access”类型,再选择“版本7.0MDB”。

3.

选择保存库文件的目录(设把文件保存在C盘的根目录中,文件名为Myfile)。

4.

这时出现“数据库”窗口,此时数据库已存在,但还不包含任何的表名以及字段定义等表结构。点击右键,选择“新表”,添加一个新表,出现“表结构”对话框,在“表名”框中输入表名(本例表名为Phone)。

5.

单击“添加字段”按钮,显示“添加字段”对话框。按要求分别定义“字段名”、“类型”及“大小”。先输入第一个字段,然后按“确定”,反复这一过程,直到输入全部的字段(本例字段分别为“序号”,“Long”,“4”;“姓名”,“text”,“8”;“电话”,“text”,“15”;“地址”,“text”,“30”)。

6.

单击“关闭”,从“添加字段”对话框退回到“表结构”窗。点击“生成新表”,保存表结构。

图1

VB访问数据库的两种方法

7.

在“数据库”窗双击新建的表名,按“添加”开始向表中添加记录,完毕后按“更新”。反复这一过程,向表中多增添几个记录。

8.在数据库中再建一个表,表名为Article。表包含字段为“序号”,“Long”,“4”;“作品”,“text”,“15”(为了简单起见表中只有两个字段)。向表中增加几条记录,比如序号1对应有多个作品,序号2也有多个作品。

二、增加索引

右键单击Phone表名,选择“设计”,在表设计窗口的底部,单击“添加索引”按钮,可打开“添加索引到……”对话框。

从“可用字段”列表中选择要进行索引的字段名放到“索引字段”列表中,根据需要选中“主要的”、“惟一的”、“忽略空值”复选框中的一个或多个的组合,在“名称”中加入索引名,保存该索引。

三、SQL查询

在“可视化数据管理器”中打开一个库文件,在d出“数据库”窗口的同时,在其后面会d出一个“SQL语句”对话框。把其变为当前窗口,可在其中输入SQL语句,比如:select

phone.姓名,article.作品

from

phone,article

where

phone.序号=article.序号。

然后点击“执行”按钮,d出对话框提问“这是SQL传递查询吗?”直接回车,选择默认选项“否”,确认查询,即可从两个表中提取满足条件的记录信息。还可以点击“清除”按扭清除框中的查询语句或按“保存”在数据库中保存此查询。值得注意的是,查询中保存的只是查询定义语句,而并未物理保存这些被查询的记录数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11658615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存