📄 index1.txt
字号:
问 题 : 我 用 vb6.0进 行 数 据 库 编 程 中 , 使 用 DAO方 法 结 合 DATA数 据 邦 定 控 件 对 数 据 库 中 的 记 录 进 行 查 询 , 编 程 如 下 :
option explicit * 在 窗 体 模 块 中 声 明 两 个 变 量
dim db as database
dim rs as recordset
private sub cmdseek_click()
dim strseek as string
set db=dattitles.database *对 db和 rs 赋 值 其 中 dattitles为 数 据 控 件
set rs=dattitles.recordset
strseek=Inputbox("请 输 入 要 查 找 的 记 录 ", ,"查 找 ")
rs.index="title" *定 义 当 前 索 引
rs.recordset.seek "=",strseek
If rs.nomatch then
msgbox("你 要 查 找 的 记 录 不 在 数 据 库 中 ")
rs.movefirst
Endif
End sub
运 行 该 程 序 ,我 的 本 意 是 : 查 找 记 录 时 , 如 果 该 记 录 在 数 据 库 中 则 显 示 之 , 如 不 在 , 则 显 示 msgbox所 定 义 的 语 句 。 可 是 当 我 运 行 后 , 却 发 现 如 果 记 录 在 则 显 示 正 常 , 如 果 不 存 在 该 记 录 或 者 在 输 入 框 上 直 接 按 下 “ 确 定 ” 或 “ 取 消 ” 后 , 首 先 给 出 vb的 模 式 对 话 框 , 显 示 该 记 录 不 存 在 , 按 下 “ 确 定 ” 后 才 出 现 我 所 定 义 的 msgbox语 句 你 要 查 找 的 记 录 不 在 数 据 库 中 。
对 以 上 所 出 现 的 情 况 , 我 查 看 了 一 些 资 料 , 也 未 能 找 到 答 案 , 在 网 上 浏 览 后 见 到 你 的 信 箱 。 特 给 你 发 一 封 信 , 请 求 帮 助 , 希 望 你 能 抽 空 看 一 看 我 的 问 题 , 给 我 回 信 解 答 一 下 。
<END>
23,运行到Err.Raise时报错
问 题 : 我 在 一 个 类 (clsTest)中 定 义 如 下 方 法
public sub Test()
on error goto FindErr
dir "a:\test.c"
exit sub
FindErr:
err.Raise vbobjecterror+513,,"Test"
end sub
在 一 个 form中 定 义 如 下 :
private myTest as new clsTest
另 外 定 义 一 个 Sub
private sub MyTestSub()
on error goto finderr
mytest.test
exit sub
finderr:
msgbox err.descript
end Sub
当 程 序 运 行 到 err.raise vbobjecterror+513,,"test"时 , 报 错 :run-time error '-2147220997(80040201)':Test
<END>
24,AddressOf操作符建立回调函数中出现子程序未定义错误
在 这 个 程 序 中 , 我 要 使 用 AddressOf 操 作 符 建 立 回 调 函 数 用 以 接 受 计 数 器 的 通 知 。 步 骤 为 :
( 1) 创 建 初 始 项 目
1、 在 窗 体 上 放 置 ProgressBar控 件 和 一 个 命 令 按 钮 。
( 2) 添 加 代 码 以 启 动 计 数 器
1、 在 模 块 Module1中 添 加 SetTimer和 KillTimer的 声 明 。
2、 创 建 名 为 StartTimer的 过 程 , 添 加 到 窗 体 。
3、 声 明 窗 体 级 的 整 型 变 量 以 存 放 返 回 的 计 数 器 的 ID值 。
4、 调 用 SetTimer函 数 , 参 数 的 设 置 为 :
HWnd 0
idEvent 0
Interval 200
callback AddressOf timerproc
其 中 , timerproc为 回 调 函 数 的 地 址 。
5、 把 ProgressBar的 值 设 为 0
6、 把 命 令 按 钮 的 标 题 设 为 Stop。
( 3) 添 加 代 码 以 结 束 并 重 置 计 数 器
1、 创 建 名 为 EndTimer的 Sub并 添 加 到 窗 体 。
2、 若 计 数 器 的 ID不 为 0, 则 调 用 KillTimer函 数 。
3、 把 计 数 器 设 为 0
4、 把 命 令 按 钮 的 标 题 设 为 Start
( 4) 给 窗 体 控 件 添 加 代 码
1、 在 命 令 按 钮 的 Click事 件 中 , 测 试 以 下 条 件 :
a)若 计 时 器 的 ID为 0, 调 用 StartTimer
b)反 之 , 调 用 EndTimer
2、 创 建 名 为 UpdateProgressBar的 公 共 sub
3、 计 算 下 一 个 ProgressBar的 值 , 该 值 是 在 当 前 值 的 基 础 上 加 增 量 5而 得
4、 测 试 以 下 条 件 :
a)若 下 一 值 大 于 等 于 100, 把 ProgressBar的 值 设 为 100, 并 调 用 EndTimer
b)反 之 , 把 ProgressBar的 值 设 为 计 算 出 的 值 。
程 序 代 码 为 :
Private idtimer As Integer
Const cincrement As Integer = 5
Private Sub cmdtimer_Click()
If idtimer > 0 Then
endtimer
Else
starttimer
End If
End Sub
Public Sub updateprogressbar()
Dim percentdone As Integer
percentdone = ProgressBar1.Value + cincrement
If percentdone >= 100 Then
ProgressBar1.Value = 100
endtimer
Else
ProgressBar1.Value = percentdone
End If
End Sub
Private Sub starttimer()
idtimer = SetTimer(0, 0, 200, AddressOf timerproc)
ProgressBar1.Value = 0
cmdtimer.Caption = "Stop"
End Sub
Private Sub endtimer()
KillTimer 0, idtimer
idtimer = 0
cmdtimer.Caption = "Start"
End Sub
在 模 块 Module1中 , 定 义 如 下 :
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Sub timerproc(ByVal hwnd As Long, ByVal msg As Long, ByVal idevent As Long, ByVal curtime As Long)
updateprogressbar
End Sub
运 行 之 , 单 击 命 令 按 钮 , 得 到 如 下 结 果 :
Compiler Error:sub or functions not defied
<END>
25,SETFOCUS语句出现“无效的过程或调用函数”错误
有 一 个 程 序 , 在 执 行 到 COMMAND(INDEX).SETFOCUS语 句 处 有 时 会 出 现 “ 无 效 的 过 程 或 调 用 函 数 “ , 但 有 时 就 不 会 出 现 此 错 误 , 请 问 是 为 什 么 呢 ?
<END>
26,VB程序一启动就出现“启动出错”的提示
做 成 了 一 个 播 放 器 生 成 EXE后 , 在 本 机 中 能 运 行 , 可 到 别 的 机 子 上 就 不 行 了 。 在 别 的 机 子 上 , 我 直 接 用 的 EXE程 序 , 可 一 启 动 就 出 现 “ 启 动 出 错 ” 的 提 示 。 这 是 怎 么 回 事 。
<END>
27,VB中调用DLL显示Bad DLL calling convention
遇 到 的 问 题 :鉴 于 VB的 速 度 和 在 位 操 作 方 面 的 不 足 , 我 不 得 不 用 VC来 编 写 一 个 DLL来 实 现 一 些 功 能 。 可 在 VB中 调 用 是 总 是 说 "Bad DLL calling convention"。
在 VC中 的 源 程 序 如 下 :(一 个 极 其 简 单 的 试 验 用 的 函 数 )
#define DllExport __declspec( dllexport )
DllExport int Gen(int a)
{
return 2;
}
DllExport int Gen2(void)
{
return 1;
}
在 VB中 声 明 如 下 :
Declare Function Gen Lib "Paper.dll" (ByVal a As Integer) As Integer
Declare Function Gen2 Lib "Paper.dll" () As Integer
调 用 程 序 :
Dim SS As Integer
SS = 1
SS= Gen2() //调 用 成 功
SS = Gen(SS) //一 到 这 就 报 错 ,?????????
<END>
28,VB能否设置一个全局的错误处理例程
VB能 否 象 VFP一 样 只 需 一 个 地 方 有 错 误 处 理 例 程 ,不 需 每 个 SUB都 有 错 误 处 理 程 序 ?
<END>
29,调用ActiveX DLL时出现错误:找不到DLL入口点
具 体 是 这 样 的 : 我 是 第 一 次 编 写 ACTIVEX DLL程 序 , ( 在 学 习 ) 在 DLL中 我 只 在 类 模 块 中 写 了 一 个 函 数 CARD, 具 体 如 下 :
Public Sub card_config(ByVal address As Integer, ByVal intermit As Integer)
Open "c:\test\test.ini" For Output As #1
Write #1, address, intermit, 12, 13
Close #1
End Sub
编 译 成 DLL后 , 在 另 外 一 个 程 序 中 调 用 , 格 式 如 下 :
在 模 块 中 声 明 :
Public Declare Function card_config Lib "c:\test\card.dll" (ByVal address As Integer, ByVal intermit As Integer)
在 一 个 按 钮 中 写 如 下 :
c = card_config(12,12)
运 行 后 出 现 错 误 : 编 Activex DLL后 , 调 用 时 出 现 错 误 : “ 实 时 错 误 453, 找 不 到 DLL入 口 点 ” 望 指 教 。 如 有 可 能 : 请 详 细 告 之 DLL的 编 程 格 式 。
<END>
30,如何在自定义的错误处理过程中显示标准的错误信息框
如 何 在 自 定 义 的 错 误 处 理 过 程 中 显 示 标 准 的 错 误 信 息 框 ? 就 是 说 , 我 只 处 理 一 部 分 的 错 误 码 , 其 余 的 错 误 以 标 准 的 错 误 信 息 框 显 示 , 包 括 “ 调 试 ” 、 “ 帮 助 ” 按 钮 。
<END>
31,CommanDialog提示没有安装字体
我 在 执 行 CommanDialog.ShowFont时 , 提 示 : 没 有 安 装 字 体 , 请 从 控 制 面 板 中 字 体 文 件 夹 中 安 装 字 体 。 可 是 , 我 的 控 制 面 板 中 字 体 文 件 夹 是 装 有 很 多 字 体 的 。 这 是 怎 么 回 事 呢 ?
<END>
32,VB报告找不到DLL
我 用 VB6开 发 的 程 序 中 调 用 了 自 己 写 的 一 个 动 态 连 接 库 。 在 Win98和 Win2000beta3和 某 些 机 器 中 的 WinNt4.0spk4中 运 行 良 好 。 在 另 一 些 机 器 上 的 WinNt4.0spk4中 调 用 DLL会 产 生 “ run-time error 48, Cannot found txtpack.dll"的 错 误 , 其 实 txtpack.dll就 在 该 exe文 件 同 一 目 录 下 ( 我 把 它 拷 到 Winnt\system32 目 录 下 也 不 行 ) 。 为 什 么 ?
<END>
33,实时错误“62”输入超出文件尾
如 果 我 想 在 DO WHILE NOT EOF( 1) - - - - LOOP语 句 中 将 一 个 文 本 文 件 以 一 页 一 页 的 方 式 显 示 , 如 下 :
Private Sub Command1_Click()
Open "e:\t01.txt" For Input As #1
Texta.FontSize = 15
Texta.FontName = "楷 体 _GB2312"
Do While Not EOF(1)
For i = 0 To 24
Line Input #1, aspect$
whole$ = whole$ + "" + aspect$ + Chr$(13) + Chr$(10)
Texta.Text = whole$
Next i
aspect$ = ""
whole$ = ""
Loop
End Sub
却 报 : 实 时 错 误 “ 62” 输 入 超 出 文 件 尾 。 我 想 除 了 没 有 延 时 器 , 我 实 在 是 想 不 出 还 有 什 么 问 题 , 请 指 教 ! ! ! 另 : 延 时 器 若 用 一 个 空 循 环 是 不 是 有 用 , 若 没 有 用 那 该 怎 么 做 ?
<END>
34,不出现VB给的出错对话框并且不中止程序
请 问 如 何 令 程 序 在 要 求 打 开 位 图 文 件 的 地 方 打 开 非 位 图 文 件 , 而 不 出 现 VB给 的 出 错 对 话 框 并 且 不 中 止 程 序 ?
<END>
35,什么是“实时错误9----下标越界”
我 在 为 一 数 组 赋 值 时 出 现 如 下 错 误 : “ 实 时 错 误 9----下 标 越 界 ”
出 错 的 代 码 如 下 :
Dim inputdata() As Single
inputdata(0) = Text2(0).Text / Text2(1).Text '入 学 率
<END>
36,帮助文件提示窗口没有定义
我 在 窗 体 中 设 置 了 HelpContextID属 性 , 但 在 运 行 时 我 按 F1键 后 出 现 了 错 误 信 息 : 工 程 文 件 (.PRJ)中 没 有 定 义 窗 口 名 “ LangRef” 。 我 把 窗 口 名 改 为 LangRef, 但 还 是 不 行 , 不 知 是 什 么 原 因 ? 另 外 , Help Workshop项 目 文 件 中 的 [MAP]段 如 何 定 义 ?
<END>
37,True Dbgrid60a运行时出现实时错误Printer Error
我 在 使 用 True Dbgrid6.0a for vb6.0 使 用 如 下 语 句 :TDbgrid1.PrintInfo.PrintData, 但 运 行 时 出 现 实 时 错 误 :"Printer Error"。 用 "PrintPriview"方 法 打 印 也 有 同 样 问 题 。 但 我 的 打 印 机 及 驱 动 程 序 的 安 装 没 有 任 何 问 题 。 用 其 它 程 序 打 印 时 也 一 切 正 常 .(打 印 机 型 号 :Epson LQ-1600k), 之 后 我 又 安 装 了 True DBGrid 6.0a的 Patch,问 题 依 然 存 在 。 请 问 是 否 有 办 法 解 决 ?
<END>
38,Crystal Reports出现错误Error in saved records
我 用 Crystal ActiveX控 件 制 作 报 表 , 部 分 属 性 和 代 码 如 下 :
reportsource 0
reportfilename c:\test.rpt
windowstate 2
private sub command1_click()
dim R%
t=inputbox("","")
crystalreport1.groupselectionformula="{dm.id}='" & t & "'"
R%=crystalreport1.printreport
end sub
执 行 后 屏 幕 出 现 :
error in saved records
random access to unknown record
为 什 么 不 能 打 印 出 我 所 要 的 记 录 ?
<END>
39,制作发行光盘,运行报告“文件或路径无法找到”
我 在 制 作 一 张 发 行 光 盘 , 主 要 是 图 形 图 象 的 浏 览 和 复 制 。 在 编 译 后 运 行 报 告 “ 文 件 或 路 径 无 法 找 到 ” 。 请 问 如 何 处 理 ? 请 将 方 法 描 述 的 详 尽 一 些 。 最 好 举 例 说 明 。
操 作 系 统 是 windows95、 软 件 的 版 本 vb6.0
复 制 文 件 部 分 代 码 如 下 :
Private Sub Command14_Click()
For I = 1 To 6
Apath = App.Path
FilePath = Apath + "\Pic\dwg\98-3\Af\ns\3nsa0" + CStr(I) + "f.dwg"
SourceFile = FilePath
DestinationFile = Dir1.Path + "\3nsa0" + CStr(I) + "f.dwg"
FileCopy SourceFile, DestinationFile
Next I
For I = 0 To 5
Apath = App.Path
FilePath = Apath + "\Pic\dwg\98-3\T\n\3nt0" + CStr(I) + ".dwg"
SourceFile = FilePath
DestinationFile = Dir1.Path + "\3nt0" + CStr(I) + ".dwg"
FileCopy SourceFile, DestinationFile
Next I
End Sub
<END>
40,CrystalReport控件发生错误:DataSource属性未设置
我 在 Form_Load中 加 入 以 下 语 句 :
Data1.RecordSource="select * from 商 品 档 案 "
CrystalReport1.Action = 1
按 F5运 行
出 错 :
实 时 错 误 : 20537
DataSource属 性 未 设 置
而 我 对 CrystalReport控 件 的 该 属 性 设 置 为 Data1。 为 什 么 ?
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -