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

📄 index1.txt

📁 VB技巧问答10000例,是一个教程
💻 TXT
📖 第 1 页 / 共 2 页
字号:
问 题 : 我 用 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 + -