暴力兔问答录

返回主页◎

暴力兔问答录

问:
我想向你请教一下,VB中如何实现多个应用程序顺序执行?
答:
多个应用程序,你是不是指调用其他程序并让其顺序执行,用SHELL就可以做到这一点,监视程序的运行情况 我们使用 VB 提供的 Shell 方法调用外部程序时,Shell方法执行后会继续执行下面的代码,而我们不能确定外部程序什么时候调用结束。我们现在可以通过以下方法来实现对被调用程序的监视:
(1)首先在工程中添加一个模块,然后声明 OpenProcess及 CloseHandle 这两个 API函数;
(2)然后加入下面的函数:
Public Function StillRun(ByVal ProgramID) As Boolean
Dim lHProgram As Long
Dim lReturn As Long
hProgram = OpenProcess(0, False, ProgramID)
If Not hProgram = 0 Then
StillRun = True
Else
StillRun = False
End If
CloseHandle hProgram
End Function
说明:ProgramID 是 Shell 函数返回的那个值, 那是一个进程号;lHProgram是被测程序的进程句柄;lReturn是进程的返回码。本程序只是在WIN32下有效,使用重要注意一个问题,就是代码的重入问题。可以用类似以下的代码来解决。
While StillRun(id)
DoEvents
Wend

问:
我写的一个程序里面需要使用 SQL 来更改一字段里面的一部分内容我使用的是 Data 执行 SQL,可是执行到下面的语句时提示无效的操作这是为什么?
答:
DataConsume.RecordSource = "update Consume set 消费清单号='" &Txt清单号.Text & "' where 消费清单号='NO'and 手牌号='" & Txt手牌号.Text & "' and 结账=False"
DataConsume.Refresh '在这执行这句时停下来的,说是无效的操作 ;(
'请问这是为什么,如何解决?
关于这个问题我研究了一下资料,在VB的联机手册中只提到了SQL查询,并没有将修改提出来,而且在所有的DAO对象中,好象只有QUERYDEF能执行,建议你在使用这个对象的时候用新建一个数据库来实验,因为我发现QUERYDEF一旦创建就不能销毁,除非关机,即便这样还是把数据库破坏了,你再用VISDATA打开该数据库时,总报告有错,但浏览、修改一切正常。

问:
小弟在进行数据库编程时,想在两个记录之间插入一条记录,但不知如实现,如能见告,不胜感激!
答:
首先为所有的记录添加索引
第二步将要添加的记录的索引字段的值设为要插入的两个记录索引值的中间值,
然后执行添加记录程序
最后从新打开数据库,数据库会自动地进行重排。

问:
对vb5的DBGrid控件进行“自定义”时,其“列”选项中可以对Column0,Column1设置标题并将其关联至数据字段,但只能设置两个字段,如何设置到Column3、Column4、Column5.....直至整个数据表?
答:
哈哈,这可是独家密技,附耳过来,如此这般……把鼠标移到DBGrid上,右键单击,弹出菜单,单击“编辑”,然后再次右键单击,发现什么没有,大秘密就此暴露,可以追加,狂加一通,然后再进入自定义,你会发现又是一番天地。正所谓:微软右键真奇妙,单击时,换了人间(未完待续)

回到文档顶端