⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d971228.gb_

📁 ASPWeb数据库范例总览
💻 GB_
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
   <TITLE>资料库篇: 为什麼會出现「没有设定物件变数或 With 区域变数」的错误讯息?</TITLE>
   <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
   <META NAME="Author" CONTENT="KJ Wang">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#000080" ALINK="#FF0000">

<H2 ALIGN=CENTER><A HREF="vbdb.htm">VB5 与资料库程式设计</A></H2>

<H3 ALIGN=CENTER><A HREF="../vbweeks.htm">每周一问</A>: 挑战您的 VB 功力 (资料库篇, 97/12/28)</H3>

<H2>
<HR WIDTH="100%"></H2>

<CENTER><TABLE>
<TR VALIGN=TOP>
<TD NOWRAP>Q:</TD>

<TD>利用 Data 控制元件所撰写的资料库程式中, 在「<FONT COLOR="#FF0000">设计阶段</FONT>」已经设定
&quot;stock01.mdb&quot; 档案给 Database 属性, 并且在 Form_Load 事件程序中撰写以下程式:<FONT COLOR="#008000">(以下的
&quot;股票行情表&quot; 是 stock01.mdb 资料库的一个资料表)</FONT> 
<UL>
<PRE><FONT SIZE=+1>Private Sub Form_Load()
    Dim rs As Recordset 
    Set rs = <FONT COLOR="#FF0000">Data1.Database.OpenRecordset</FONT>(&quot;股票行情表&quot;) 
End Sub </FONT></PRE>
</UL>

<P>结果程式执行之後, 却出现 「没有设定物件变数或 With 区域变数」的错误讯息,
为什麼呢? 又如何更正程式?</P>
</TD>
</TR>

<TR VALIGN=TOP>
<TD>A:</TD>

<TD>由於我们在<FONT COLOR="#FF0000">设计阶段</FONT>设定 DatabaseName 属性给
Data 控制元件, 所以进入<FONT COLOR="#FF0000">执行阶段</FONT>且当 Form
被载入时, Data 控制元件即會自动开启 DatabaseName 属性的资料库档案, 并且将开启之
Database 物件设定给 Data1.Database 属性, 因此以上程式利用 <FONT COLOR="#FF0000">Data1.Database.OpenRecordset</FONT>
开启 Recordset 应该是正确的, 为什麼會错误? 
<P>虽然说 Data 控制元件會在 Form 载入时自动开启 Database 属性的资料库,
但实际上, 发生 Form_Load 事件时* Data 控制元件却还没有开启 Database 属性的资料库,
正确的开启时间应该是 Form_Load 事件之後。这使得 Form_Load 事件发生时,
Data1.Database还不是有效的物件, 以致 <FONT COLOR="#FF0000">Data1.Database.OpenRecordset
</FONT>无法正确执行。</P>

<P>解决方法是在 <FONT COLOR="#0000FF">Set rs = Data1.Database.OpenRecordset(&quot;股票行情表&quot;)</FONT>
之前加上:</P>

<UL>
<P><B><FONT COLOR="#FF0000">Data1.Refresh</FONT></B></P>
</UL>

<P>以上叙述的作用是强制 Data1 立刻开启资料库(表), 若资料库(表)已开启,
则重新开启, 目的是让 Data1.Database 变成合法的物件, 而使得 Data1.Database.OpenRecordset
能後正确地执行。</P>

<P><FONT COLOR="#008000">注:课本的 p.171 及 p.244 都曾经应用 Data1.Refresh
来解决类似的问题。</FONT></P>
</TD>
</TR>
</TABLE></CENTER>

<P>
<HR WIDTH="100%"></P>

</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -