1、点击菜单栏上面的创建——窗体设计,建立一个空白的窗体。
2、我们先建立主窗体,点击设计选项下的添加现有字段选项。
3、在字段李彪中,拖动订单表中的下列字段到窗体的主体部分,这就就建立了主窗体。
4、得到的这个窗体比较凌乱,我们选中这些字段,右键单击这些字段,在菜单中选择对齐--靠左,这样他们就以最左边的字段对齐了。
5、接着在设计选项下,点击主子窗体控件,选择该控件以后鼠标键变成了一个控件的样子。
6、在窗体的主题部分点击一下,改位置就会添加一个矩形框,这就是子窗体的位置了,然后自动d出一个子窗体向导。
7、选择使用现有的查询和表,这个选项的意思是子窗体的数据源是表或者查询,如果选择使用现有的窗体那么数据源就是窗体了,点击下一步。
8、从采购订单中选择需要使用的字段,点击添加按钮就可以将字段田间道选定字段中,也就是添加到了窗体中,点击下一步。
9、设置关联的字段,这一步我们要将主子窗体关联起来,如果没有关联是无法建立主子窗体的,我们看到员工和提交者是相同的,将它们关联起来,点击下一步。
10、最后填写窗体的名称,然后点击完成。这样我们就建立了主子窗体。
11、点击菜单栏上面的额视图选项,切换到窗体视图,看看最后建立的主子窗体的效果。
ADO控件一般和DATAGRID同时使用比较合适和方便。能方便的 *** 作数据记录,
但如果不需要界面,仅需要实现连接数据库,然后做些删除,更新,添加的功能,则使用ADO对象较好。
使用 ADO Data 控件
ADO Data 控件使用 Microsoft ActiveX 数据对象(ADO) 来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合 OLEDB 规范的数据源。使用 Visual Basic 的类模块也可以很方便地创建子集的数据提供者。
尽管可以在应用程序中直接使用 ActiveX 数据对象,但 ADO Data 控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。
图 74 ADO Data 控件
在 Visual Basic 的“工具箱”中不少控件都可以作为数据绑定的控件,包括复选框、组合框、图像、标签、列表框、框、以及文本框控件等。此外,Visual Basic 还包括了若干种数据绑定的 ActiveX 控件,诸如 DataGrid、DataCombo、Chart、以及 DataList 控件等。用户也可以创建自己的数据绑定的 ActiveX 控件,或从其他开发商购买控件。
Visual Basic以前的版本提供了内在的 Data 控件和 Remote Data 控件 (RDC) 来进行数据访问。这两种控件仍包括在 Visual Basic 中,以提供向后兼容。不过,因为 ADO 的适应性更广,因此建议用户使用 ADO Data 控件来创建新的数据库应用程序。
详细信息 关于数据绑定的控件的完整列表位于“绑定到 ADO Data 控件的控件”中。要了解如何使用这些内在的Data 控件或 Remote Data 控件,请参阅“使用 Data 控件”或“使用 Remote Data 控件”。关于创建数据提供者的详细信息,请参阅“创建数据识别类”。
可能的用法
连接一个本地数据库或远程数据库。
打开一个指定的数据库表,或定义一个基于结构化查询语言 (SQL) 的查询、或存储过程、或该数据库中的表的视图的记录集合。
将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。
添加新的记录,或根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。
要创建一个客户、或前端数据库应用程序,应在窗体中添加 ADO Data 控件,以及其它所需要的任何 Visual Basic 控件。可以根据您的需要在窗体中放置多个 ADO Data 控件。不过,请注意,这种控件是一种相当“昂贵”的创建连接的方法,应在第一个控件至少有两个连接,且以后的每个控件至少多一个连接时使用。
用最少的代码创建一个前端数据库应用程序
通过在设计时设置一些属性,可以用最少的代码来创建一个数据库应用程序。如果正在使用OLE DB 数据源,则相应的Microsoft 数据链接名称(Data Link Name)(MDL) 必须是在您的机器上创建的。请参阅“创建 Northwind 的OLE DB Data Link”,以获得一个循序渐进的示例。
要创建一个简单的前端数据库应用程序
窗体上放置一个 ADO Data 控件。(该图标的工具提示为 "ADODC"。)
如果该控件不在“工具箱”中,请按 CTRL+T 键,显示“部件”对话框。在这个“部件”对话框中,单击“Microsoft ADO Data Control”。
在“工具箱”中,单击选定“ADO 数据控件”。然后按 F4 键显示“属性”窗口。
在“属性”窗口中,单击“ConnectionString”显示“ConnectionString”对话框。
如果您已经创建了一个 Microsoft 数据链接文件(Data Link file)(UDL),请选择“使用 OLE DB 文件”并单击“浏览”,以找到计算机上的文件。如果使用 DSN,则单击“使用 ODBC 数据源名”,并从框中选择一个 DSN,或单击“新建”创建一个。如果想创建一个连接字符串,请选择“使用 ConnectionString”,单击“生成”,然后使用“数据链接属性”对话框创建一个连接字符串。在创建连接字符串后,单击“确定”。ConnectionString 属性将使用一个类似于下面这一行的字符串来填充:
driver={SQL Server};server=bigsmile;uid=sa;pwd=pwd;database=pubs
在“属性”窗口中,将“记录源”属性设置为一个 SQL 语句。例如:
SELECT FROM Titles WHERE AuthorID = 72
在访问一个表时,应始终包括一个 WHERE 子句。如果这样做失败,则会锁定整个表,这样对其他用户将是一个严重的障碍。
在窗体上再放置一个“文本框”控件,用来显示数据库信息。
在其“属性”窗口中,将 Text1 的“数据源”属性设为 ADO Data 控件的名称 (ADODC1)。这样就将这个文本框和 ADO Data 控件绑定在一起。
在其“属性”窗口中,单击“数据字段”将下拉得到一个可用的字段列表。单击所要显示的字段的名称。
对希望访问的其它每个字段重复第 6、7、8 步。
按 F5 键运行该应用程序。用户可以在 ADO Data 控件使用四个箭头按钮,从而允许用户地到达数据的开始、记录的末尾、或在数据内从记录移动到另一个记录。
在程序中设置 ConnectionString、Source、DataSource、以及 DataField
下面的代码演示了如何在程序中设置这四个属性。注意设置 DataSource 属性要使用 Set 语句。
Private Sub Form_Load()
With ADODC1
ConnectionString = "driver={SQL Server};" & _
"server=bigsmile;uid=sa;pwd=pwd;database=pubs"
RecordSource = "Select From Titles Where AuthorID = 7"
End With
Set Text1DataSource = ADODC1
Text1DataField = "Title"
End Sub
ADO Data 控件的事件
ADO Data 控件提供了若干个可以编程的事件。下表说明了这些事件及其何时产生,不过这个表不是一个关于这些事件何时发生的所有条件的完整列表。更完整的信息,请参阅各个事件的参考主题。
事件 产生条件
WillMove 当执行 RecordsetOpen、RecordsetMoveNext、RecordsetMove、RecordsetMoveLast、RecordsetMoveFirst、RecordsetMovePrevious、RecordsetBookmark、RecordsetAddNew、RecordsetDelete、RecordsetRequery、RecordsetResync 方法时
MoveComplete 在 WillMove 事件之后
WillChangeField 在 Value 属性更改之前
FieldChangeComplete 在 WillChangeField 事件之后
WillChangeRecord 当执行 RecordsetUpdate、RecordsetDelete、RecordsetCancelUpdate、RecordsetUpdateBatch、RecordsetCancelBatch 方法时
RecordChangeComplete 在 WillChangeRecord 事件之后
WillChangeRecordset 在执行 RecordsetRequery、RecordsetResync、RecordsetClose、RecordsetOpen、RecordsetFilter 方法时
RecordsetChangeComplete 在 WillChangeRecordset 事件之后
InfoMessage 当数据提供者返回一个结果时
详细信息 如果试图循序渐进地使用 ADO Data 控件,请参阅“使用 DataGrid 和 ADO 数据控件创建一个简单的数据库应用程序”,“ 创建一个简单的 DataCombo 应用程序”,以及“创建一个连接 DataList 控件的 DataGrid”。
属性、方法和事件概述
Visual Basic 的窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。日常生活中的对象,如小孩玩的气球同样具有属性、方法和事件。气球的属性包括可以看到的一些性质,如它的直径和颜色。其它一些属性描述气球的状态(充气的或未充气的)或不可见的性质,如它的寿命。通过定义,所有气球都具有这些属性;这些属性也会因气球的不同而不同。
气球还具有本身所固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。所有的气球都具备这些能力。
气球还有预定义的对某些外部事件的响应。例如,气球对刺破它的事件响应是放气,对放手事件的响应是升空。
如果能对气球编程的话,Visual Basic 代码将如下所示。其作用是设置气球的属性:
BalloonColor = Red
BalloonDiameter = 10
BalloonInflated = True
注意代码的语法,首先是对象 (Balloon),接着是属性 (Color),然后是赋值(Red)。重复这条语句,但是,换一个不同的值,就可以改变气球的颜色。属性也可以在程序设计阶段在“属性”窗口中设置。
调用气球的方法是这样的:
BalloonInflate
BalloonDeflate
BalloonRise 5
它的语法与属性的语法相似,对象(一个名词)后面紧跟着方法(一个动词)。在第三个例子中有一个附加项,称为一个参数,表示气球上升的高度。一些方法有一个或多个参数,它们对执行的动作做进一步的描述。
气球对一个事件的响应如下所示:
Sub Balloon_Puncture()
BalloonDeflate
BalloonMakeNoise "Bang"
BalloonInflated = False
BalloonDiameter = 1
End Sub
本例中代码描述了当刺穿事件发生时气球的行为:调用 Deflate 方法,然后以 "Bang"(发出的声响)为参数调用 MakeNoise 方法。因为气球已不再是充气状态,所以把 Inflated 属性置为 False,并给 Diameter 属性设置一个新值。
实际上对气球不能编程,但是,可以对 Visual Basic 的窗体或控件进行编程。作为程序员,由您作主。您决定应更改哪些属性,调用哪些方法,对哪些事件作出响应,从而得到希望的外观和行为。
设计窗体
窗体对象是 Visual Basic 应用程序的基本构造模块,是运行应用程序时与用户交互 *** 作的实际窗口。窗体有自己的属性、事件和方法用于控制其外观和行为。
设计窗体的第一步是设置它的属性。这可以在设计时在“属性”窗口中完成,或者运行时由代码来实现。
注意 设计时,即在 Visual Basic 环境中创建应用程序的任何时刻,此时你可以 *** 作窗体和控件,设置它们的属性,对它们的事件编程。运行时是指实际运行应用程序并与应用程序进行交互的时间。
设置窗体属性
窗体的许多属性会影响窗体的外观。Caption 属性决定窗体标题栏中显示的文本;图标属性设置在窗体最小化时显示的图标。MaxButton 和 MinButton属性决定窗体是否能化或最小化。通过改变 BorderStyle 属性,可以控制窗体如何调整大小。
Height 和 Width 属性决定的窗体初始大小;Left 和 Top 属性根据屏幕的左上角确定窗体的位置。WindowState 属性可以把窗体设成在启动时化、最小化或正常大小。
Name 属性设置窗体的名称,在代码中用这个名称引用该窗体。首次在工
程中添加窗体时,该窗体的名称被缺省为 Form1;添加第二个窗体,其名称被缺省为 Form2,以此类推。给 Name 属性设置一个有实际意义的名称,如给一个条目窗体命名为 "frmEntry"。
熟悉这些窗体属性,的办法是实践。在“属性”窗口(图 33)中更改窗体的一些属性,然后运行该应用程序并观察修改的效果。如果想详细了解每个属性,可以选择该属性并按 F1 键查看联机帮助。
窗体事件和方法
窗体作为对象,能够执行方法并对事件作出响应。
无论是因为用户交互,还是通过代码调整窗体的大小,都会触发一个 Resize事件。当窗体尺寸变化时,允许您在窗体上进行移动控件或调整控件大小等 *** 作。
每当一个窗体变成活动窗体时,就会产生一个 Activate 事件;当另一个窗体或应用程序被激活时,就会产生 Deactivate 事件。这些事件对初始化或结束窗体行为十分方便。例如,在 Activate 事件中,可以编写代码突出显示一个特定文本框中的文本;在 Deactivate 事件中,可以把更改保存到一个文件或数据库中。
要使一个窗体可见,可调用 Show 方法:
Form2Show
调用 Show 方法与设置窗体 Visible 属性为 True 具有相同的效果。
窗体的许多方法都调用文本或图形。Print、Line、Circle 和 Refresh 方法可
用于直接在窗体表面上写和画。这些方法和更多的方法将在第十二章“使用文本和图形”中详细讨论。
新建一个空白窗体
在属性窗口设置窗体的记录源
打开“字段列表”窗口
将“字段列表”中的字段通过鼠标拖动拖曳到窗体的主体区域
设置窗体页眉中的窗体标题,窗体页脚中导航按钮或记录 *** 作按钮等
存盘,运行
你应该是用Access2007或2010。这是选项卡式窗体,如果要改成有边框的层叠式窗体,可以在“Access选项”的“当前数据库”的“文档抽口选项”中点选“重叠窗口”即可。如果只是要这一个窗体改成层叠式的,也可以在窗体属性中设置。
设置方法:
一:Form对象
属性:
设计中的Name:窗体类的类名
AcceptButton:窗口的确定按钮
CancelButton:窗口按ESC的取消按钮
1外观
Backcolor:背景颜色
Forecolor:字体颜色
backgroundImage:背景
Font:设置字体
Formborderstyle:边框样式,常用Fixedsingle固定,sizeable可调
Text:标题栏文字
2窗口样式
ControlBox:窗体左上角或右上角的最大最小关闭按钮
MaximizeBox:控制最大化按钮是否可用
MinimizeBox:控制最小化按钮是否可用
Opacity:透明度
Icon:设置窗体左上角的图标,只能是ico文件
ShowIcon:是否显示左上角图标
ShowInTaskbar:是否在windows任务栏里显示窗体
TopMost:最顶层窗口,始终在最上面
TransparencyKey:要透明显示的颜色是哪个颜色,一般用来做透明窗体
3布局
WindowState:运行的状态,运行起来最大最小化
StarPosition:窗口运行的位置,居中之类的
Size:窗口大小
Maximumsize:最大化的最大值
Minimumsize:最小化的最大值
Autosize:当有超出时是否自动调整窗口
Autoscroll:超出有滚动条
二:工具
1Label标签:
text:标签上的文字
Anchor:勾住上右下左,控制定位
TextAlign:文字居中,前提是Autosize设为false
Autosize:是否自动根据里面文字的内容调整大小
ImageAlign:的对齐方式
Image:标签上要显示的
Imagelist:集,这个也是工具,需要先设置才能在这里用
ImageIndex:要用集中的第几个
2TextBox文本框
text:文本框上的文字
Multiline:是否为多行显示
AcceptsReturn:是否允许输入回车符,用来设置按回车时是触发AcceptButton还是回车
TabIndex:按Tab键光标进入的次序
AcceptIndex:文本框输入的时候,是否接受Tab跳格的效果
Enabled:是否可用
ReadOnly:只读,光标可以进,无法改
Maxlength:最多输入多少字符
PasswordChar:用来设置密码框内密码显示样式
WordWrap:是否自动换行
ScrollBars:如何显示滚动条
visible:是否可见
3按钮button
Text:文字
FlatStyle:样式
text后面加(&c)就可以设置c键为热键,按c的时候触发这个按键。
4radioButton单选按钮
Text:文字
把同一组单选按钮放在同一个面板panel里,他们会自动产生互斥效果。
checked:是否被选中
5checkbox复选框
6listbox列表框
7combobox下拉列表框
Iteams:列表项的集合设置
Dropdownstyle:下拉列表模式,dropdownlist只可选,dropdown可选可写
DataSource:指定一个集合,绑定在下拉列表里显示
ValueMember: string 哪个属性作为下拉列表的属性值
DisplayMember: string 哪个属性作为下拉列表的显示项
SelectedIndex:获取或设置选中项的索引号,可以设置默认选中项
Text:获取选中项的文字
SelectedValue:获取或设置选中项的值
8DataTimePicker:日期选择框
value:所选日期的DataTime型数据
9ListBox控件:
(1)把数据填进去。
法一:绑定
//listBox1DataSource = list;
//listBox1DisplayMember = "Name";
//listBox1ValueMember = "Code";
法二:向集合中添加(添加集合或逐项添加)
//直接加一个集合
listBox1ItemsAddRange(listToArray());
//逐项添加
//foreach(Info data in list)
//{
// listBox1ItemsAdd(data);
//}
提问:如何显示“请选择”效果?
a如果是直接绑定的话:在绑定数据时,会自动清空原有的内容,所以不能事先在列表框中加入"请选择"项。
应当事先在数据源的集合中,用Add()或Insert()加入一个“请选择的项”,然后再绑定。
b如果是用ItemsAdd()或ItemsAddRange()添加的数据,则事先可以在列表框中加入“请选择”项
(2)把选中的项取出来。
//数据源是直接绑定的。
string value = listBox1SelectedValueToString(); //取后端的value值
string text = listBox1Text; //取前端的显示值
label1Text = text + " " + value;
//通过SelectedItem取选中项的内容
Info item = (Info)listBox1SelectedItem;
label1Text = itemCode + " " + itemName+" "+itemSex;
(3)设置某项被选中。
//listBox1SelectedIndex = ConvertToInt32(textBox1Text); //通用
//如果:数据源是直接绑定的
//listBox1SelectedValue = textBox1Text;//对绑定形式起作用
//如果:添加的
for(int i=0;i<listBox1ItemsCount;i++ )
{
Info data = (Info)listBox1Items[i];
if(dataCode == textBox1Text)
{
listBox1SelectedIndex = i;
break;
}
}
三:如何在AppConfig配置文件中配置数据库连接字符串
<xml version="10" encoding="utf-8" >
<configuration>
<connectionStrings>
<add name="sql" connectionString="server=\sqlexpress;database=mydb;uid=sa;pwd=sa"/>
</connectionStrings>
读取AppConfig中的链接字符串
string connectionString = ConfigurationManagerConnectionStrings["sql"]ConnectionString;
注意: 1需要添加SystemConfiguration引用。
2需using SystemConfiguration命名空间。
基于数据库表的有效性验证
在用户创建数据库表时就建立有效性验证机制 如在使用DBD创建一个表时 我们可以为创建的数据库表说明一些验证手段 包括字段的最大值 最小值 图形字段的显示格式等等 在设定这些有效性验证机制时 不需要编写任何程序代码 基于数据库表的有效性验证是当数据写到数据库之前 由数据库本身来执行 Delphi也执行一些有效性验证 如在数据写到数据库之前Delphi会验证每一个字段是否被填入相应的值 有关这种途径来验证数据的有效性的详细情况请参考DBD的使用
基于字段的有效性验证
一般有两种方法来进行这种方式的有效性验证
①为记录中需要设置有效性验证的字段编写Onvalidate事件处理过程 这样每当该字段的值被修改时 该字段的OnValidate事件处理过程就会被调用 进而对被修改的字段值进行验证
②对于记录中要求非空的字段(如口令或关键字等) 我们必须首先设置这些字段的Required属性为True 然后为这些字段编写OnValidate事件处理过程 这样在修改现存记录或插入新记录时 在写入数据库之前 如果要求非空的字段中没有填入适当的字段值 那么会出现错误信息提示用户必须输入字段值
基于记录的有效性验证
这种验证方式一般在TTable部件的BeforePost事件处理过程中进行处理 即在记录写回到数据库之前对记录的每个字段值进行有效性验证
例 在程序中对字段值的有效性进行验证
创建一个用TEdit部件浏览ORDERS DB表的应用 如图 所示
修改TDataSource部件的AutoEdit属性为True
双击TTable部件打开字段编辑器Fields Editor 并单击SaleDate字段
在Object Inspector中双击SaleDate字段对象的OnValidate事件 为该字段对象编写事件处理过程如下
TForm Table SaleDateValidate(Sender:TField)
begin
If SaleDate Value>Now then
raise Exception Create( 不能输入一个未来的日期 )
end;
当这个应用程序运行时 用户修改或插入ORDERS DB中的记录时 该应用程序会对销售日期(SaleDate)字段的值进行验证 该字段值不能晚于系统的当前日期 程序中调用Now方法获得系统的当前日期 如果字段值大于系统的当前日期会出现一错误信息提示框 告知用户不能输入一个未来的日期
使用TDBComBox部件和TDBLookupComBox部件来限制用户输入字段值的范围
创建查看orders db表的应用 窗体中显示Terms 字段的是TDBComBox部件 显示EmpNo字段的是TDBLookupComBox部件
TDBComBox和TDBLookupComBox部件的属性值如表 所示
表 窗体中各部件的属性设置
━━━━━━━━━━━━━━━━━━━━━━━━━━━
部 件 属 性 属 性 值
───────────────────────────
DataField Terms
DBComBox DataSource DataSource
Items Prepaid
Net
COD
───────────────────────────
DataField EmpNo
DataSource DataSource
DBLookupComBox LookupSource DataSource
KeyField EmpNo
LookupField EmpNo
───────────────────────────
DataSource DataSet Table
AutoEdit True
───────────────────────────
DataSource DataSet Table
AutoEdit True
───────────────────────────
Table DatabaseName DemosDB
TableName orders db
───────────────────────────
Table DatabaseName DemosDB
TableName orders db
━━━━━━━━━━━━━━━━━━━━━━━━━━━
该应用运行时 当用户修改和插入记录到ORDERS DB表中时 Terms字段的值可以从组合框中的Prepaid Net COD三个值中任选 EmpNo字段的值是从另一个表Employee中获得的雇员号码 用户可以从中选择
返回目录 DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLE G数据库开发优化指南
Java程序性能优化 让你的Java程序更快 更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
lishixinzhi/Article/program/Delphi/201311/25166
Delphi中嵌入的数据库应用开发工具如Database Form Expert具有很强大的功能 我们不需要编写任何程序代码便可以快速地创建一个简单的数据库应用程序 甚至还能创建基于多个数据库表的主要──明细型数据库应用程序
本章主要介绍用Delphi开发简单的数据库应用程序的一般方法和步骤 首先让读者对Delphi强劲的数据库应用开发工具有一个直观的印象 然后在此基础上进行复杂的数据库应用程序的设计 本章主要包括以下内容
● 创建数据库应用窗体
包括用Database Form Expert 或手工方式创建简单的无需编写程序代码的应用程序或者利用多个部件并编写功能复杂的程序代码创建主要──明细型数据库应用程序
● 在应用程序中控制字段有关的属性
描述怎样读写数据库表中字段的值和控制字段的显示格式等
本章所介绍的例子中用到的窗体 数据库表以及相关的文件都是在安装Delphi时缺省安装在C:\DELPHI\DEMOS\DB\MASTAPP目录中 并且用别名DBDEMOS表示这一子目录 在本章例子中 除特殊声明外 所有的TTable和 TQuery 部件的 DatabaseName 属性都设置为DBDEMOS
简单的基于单表的据库应用
用Decphi创建显示一个数据库表中的内容的应用非常简单和方便 只需要三个部件 只要将这三个部件通过相关的属性相互联系起来 不需要编写任何程序代码便可以实现 例如 用户想查看数据库表Customer DB中的内容时 可以按下面步骤来实现
选择相关的部件
选择菜单Project/New开始一个新工程 并修改Form 的Caption属性为CustomerFrom 并把Name属性设置为CustomerForm 然后从部件选择板上的Data Access 页上选取一个Datasounce部件和一个Table部件放到窗体的左上角 它们是非可见的部件 在窗体中我们看到的只是部件的图标 从Data Control页上选取DBGrid部件放到窗体中前两个部件的下面 完成这些工作之后 窗体如图 所示
图在CustomerFrom 窗体中放置三个部件
设置部件的属性
为了使TDBGrid部件能够显示数据库表Customer DB中的客户信息 我们必须修改窗体三个部件相关的属性 这些属性的设置如表 所示
表 CustomerFrom 窗体中三个部件的属性设置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
属 性 属 性 值
──────────────────────────────
DataSource AutoEdit False
DataSource DataSet Table
Table DatabaseName DBDEMOS
Table TableName CUSTOMER DB
Table Active True
DBGrid DataSource DataSource
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这里要注意的是 DBDEMOS是Delphi缺省安装时C:\Delphi\DEMO\DB\MASTAPP目录的别名 而且数据库表Customer DB存在该目录下 用户在使用这一例子时 请注意这两项设置都是正确的 另外 Datasource Dataset Table TableName和DBGrid Datasource属性都有下拉式列表框允许用户从可能的值列表中选择它们的值 这样能方便我们进行属性的设置 而且不容易出错
Datasouuce AutoEdit属性设置为False是为了防止用户修改数据库表中的数据 在下面的讨论中我们将详细地进行说明
Table Active设置为True时 Delphi会打开Table TableName所指定的数据库表 如果这个数据库表不存在(或表中什么也没有 即空表) Delphi 会d出出错信息并且Table Active变成False 当Table Active被设置成True之后 Table 部件的一些属性就不能再修改了 如Table DatabaseName和Table Tablename属性 若要修改它们 必须首先要将Table Active属性设置为False 然后再进行修改 否则 Delphi会d出错误信息 Cannot perform this operation on an open database 当看到这个错误信息时 只需把Table Active置成False 完成相关的修改后 再把 Table Active 属性设置为True
当我们把DBGrid DataSource的值设置成DataSource 时 Delphi会把Customer DB中的数据填充到DBGrid 部件中 并且可以用DBGrid 中的滚动条来浏览数据库表中的所有记录
运行程序
保存文件 命名代码单元为Cust pas 命名工程名为CustPRJ DPR 然后按F 编译并运行程序 程序执行之后 我们可以使用滚动条或键盘移动键在字段和记录间移动 但不能修改表中的数据 因为Datasouc AutoEdit 属性已被设置为False
Cust程序中的三个部件都有各自的特殊用途 三个部件的相关属性在内部相互联系生成最终的应用程序 TTable部件连接磁盘上的实际数据库表和应用程序中其他部件的通道 TTable部件具有打开和关闭 读取 更新以及其他处理磁盘数据库文件的方法
TDatasource部件是连接TTable部件和数据浏览部件如TDBGrid部件的桥梁 TDBGrid部件用于显示数据库表中的数据信息 它为应用程序提供一个直观的界面 图 阐述了这三个部件之间的关系
Cust程序中三个部件之间的内部关系
TDBGrid 部件的奇妙之处在于它知道如何去获取数据库表中的下一条或前一条记录 我们使用滚动条或箭头键便可以完成这项任务 TDBGrid部件不知道如何增加 删除和修改记录 如果想让 Cust 程序能够修改数据库表中的记录 只要把 Datasource 部件的AutoEdit属性设置成True 并重新编译和运行程序就可以达到目的 使用箭头键 把DBGrid的高亮度条定位到某一个字段上 然后键入新值 该字段中的值将被键入的新值所取代 并且当移动到另一条记录时 健入的信息会自动写入数据库表中 如果想放弃所做的改动 只需在离开该字段前按一下Escape键
如果想在表中增加新记录 可以把高亮度条移到网格底端的空白记录上并输入新记录的有关字段值 也可以在用户指定的某一条记录的后面插入一条新记录 只要把高亮度条定位到指定的记录上 按Ins键 使可以在该记录的后面插入新记录
删除某一条记录时 把高亮度条定位在想删除的记录的任何字段上 按Ctrl+ del键 这时会出现保护信息 我们可以确认是否真的想删除该项记录
TDBGrid为用户提供了较完备的功能 用于控制是否编辑 增加或删除记录 若想禁止对数据库表作任何修改 设置TDBGrid部件的Readonly属性为 True 并设置 Option dgEDiting为False(这将为我们提供一个只读的数据库表浏览器而不是数据库编辑器 但它隐含着增加 编辑和删除记录的能力) TDBGrid部件的这些属性和Option属性其它选项的各种不同组合可以让我们很方便地对数据库表进行有效的浏览 编辑等 *** 作
如果我们经常使用像电子表格那样的界面来显示和编辑数据记录 TDBGrid 部件便是一个很方便的工具 但那并不是最友好的用户界面 如果想拥有更优美更直观的界面 我们还可以使用单独的数据浏览部件来显示数据库表中各个字段的值 并利用TDBNavigator部件控制对数据库表的存取
lishixinzhi/Article/program/Delphi/201311/25173
以上就是关于access2010如何创建一个带有子窗体的窗体求靠谱的全部的内容,包括:access2010如何创建一个带有子窗体的窗体求靠谱的、VB窗体怎么用ADO控件或者DATAGrid控件连接Access数据库、VisualBasic属性、方法和事件一等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)