Office中国论坛/Access中国论坛

标题: 如何检查A驱有没有磁盘? [打印本页]

作者: Ajoe    时间: 2004-6-11 19:59
标题: 如何检查A驱有没有磁盘?
如何检查A驱有没有磁盘,如果没有,就弹出提示窗口。

向各位请教!谢谢。
作者: zhengjialon    时间: 2004-6-11 20:31
用错误陷井试试,去读A盘中的资料,出错时就返回没有A盘,没有试过,因为没有A盘,也没有ACCESS可以试。
作者: Ajoe    时间: 2004-6-12 06:39
可以举例吗?
作者: xxzxsjp    时间: 2004-6-12 21:18
我记得我看过的一本书中有此问题的解答,有时间给你找一下。
作者: paradisewait    时间: 2004-6-12 21:28
用一下代码: Private Sub 命令0_Click()

Dim Flag As Boolean

Flag = Fun_FloppyDrive("A:")

If Flag = False Then MsgBox "A:驱没有准备好,请将磁盘插入驱动器!", vbCritical

End Sub Private Function Fun_FloppyDrive(sDrive As String) As Boolean

'-------------------------------

'函数:检查软驱中是否有盘的存在

'-------------------------------

On Error Resume NextFun_FloppyDrive = Dir(sDrive) <> ""

End Function
作者: Ajoe    时间: 2004-6-13 17:02
可以了,谢谢。应该把这些代码同时放到一起才行,我用的是Access2003,把自定义函数的代码放到模块里,就不行了。老提示出错。

[此贴子已经被作者于2004-6-13 9:09:13编辑过]


作者: Ajoe    时间: 2004-6-13 18:18
To paradisewait :好像有缺点哦,有两种情况—1、A盘一次都没有放进软驱里,一切正常,检查软驱的过程很快。2、当A盘放进软驱读过一次以后,检查软驱的过程变得很长,“卡卡卡”的声音很响,要很长时间(起码6~8秒钟)。不是很完美哦,有什么办法解决吗?
作者: zhengjialon    时间: 2004-6-14 16:00
读A盘的时间好像本来就很慢的。
作者: Ajoe    时间: 2004-6-14 19:25
我的意思是说,在第2种情况里,当软盘读过一次以后,如果再拿出软盘,执行一次,这时检查软盘的时间变得很长,起码10秒钟以上(喀嚓喀嚓不停的响)。和第1种情况不大相同,第1种情况,如果软盘一次也没有放进去读,那么检查软驱的时间大约在2秒钟以内,很快。怎么会出现这钟情况呢?
作者: Ajoe    时间: 2004-6-15 05:03
I will wate............
作者: sunredday    时间: 2004-6-15 20:59
Private Function Fun_FloppyDrive(sDrive As String) As Boolean

'-------------------------------

'函数:检查软驱中是否有盘的存在

'-------------------------------

On Error Resume NextFun_FloppyDrive = CHDir(sDrive) <> ""

End Function
作者: Ajoe    时间: 2004-6-16 18:36
Tsunredday还是不行,提示错误。语法不对。
作者: sunredday    时间: 2004-6-16 20:27
CHDIR 要比DIR 快具体实验一下,应该成的。
作者: sunredday    时间: 2004-6-16 20:45
Private Sub 命令1_Click()

Dim Flag As Boolean

Flag = Fun_FloppyDrive0("A:")

If Flag = False Then

MsgBox "A:驱没有准备好,请将磁盘插入驱动器!", vbCritical

Else

MsgBox "A:驱OK!"

End If

End SubPrivate Function Fun_FloppyDrive0(sDrive As String) As Boolean

'-------------------------------

'函数:检查软驱中是否有盘的存在

'-------------------------------

On Error GoTo 110

ChDir (sDrive) Fun_FloppyDrive0 = True

  Exit Function

110:

Fun_FloppyDrive0 = False

End Function


作者: sunredday    时间: 2004-6-16 20:47
对于我的A 驱动器两种效果几乎一样。
作者: sunredday    时间: 2004-6-16 21:00
Private Sub 命令1_Click()

Dim ti As Date

ti = Time()Dim Flag As Boolean

Flag = Fun_FloppyDrive0("A:")

If Flag = False Then

'MsgBox "A:驱没有准备好,请将磁盘插入驱动器!", vbCritical

Else

'MsgBox "A:驱OK!"

End If

MsgBox DateDiff("s", ti, Time())End Sub


作者: Ajoe    时间: 2004-6-17 05:09
Private Sub 命令1_Click()

Dim ti As Date

ti = Time()Dim Flag As Boolean

Flag = Fun_FloppyDrive0("A:")

If Flag = False Then

'MsgBox "A:驱没有准备好,请将磁盘插入驱动器!", vbCritical

Else

'MsgBox "A:驱OK!"

End If

MsgBox DateDiff("s", ti, Time())End SubPrivate Function Fun_FloppyDrive0(sDrive As String) As Boolean

'-------------------------------

'函数:检查软驱中是否有盘的存在

'-------------------------------

On Error GoTo 110

ChDir (sDrive)Fun_FloppyDrive0 = True

  Exit Function

110:

Fun_FloppyDrive0 = False

End Function

使用上面的代码,问题依旧:1、软盘1次都没有放进软驱——检查软驱最多2秒钟,最少1秒就可以检查出软驱中无软盘。2、软盘放进软驱读过一次(检查过一次)——最少9秒才能检查出软驱中元软盘。不知你们试过没有上面两种情况的测试没有?
作者: sunredday    时间: 2004-6-17 05:16
是你的软驱有问题或是你的软盘有问题我的软驱都是1 S有盘时是1S
作者: Ajoe    时间: 2004-6-17 07:07
请注意第2种情况:2、软盘放进软驱读过一次(检查过一次)——最少9秒才能检查出软驱中无软盘。意思是软盘已经放进软驱读过一次(检查过一次),然后取出软盘,让程序再执行检查。我的是最少9秒才能检查出软驱中无软盘。你的呢?再试试!看看是不是我的软驱有问题(这应该是软驱的问题吧,因为我没有放盘进去,呵呵!)
作者: sunredday    时间: 2004-6-17 15:39
多编制程序时已经反复实验10次以上了无盘  0 S有盘 0 S OR 1S
作者: Ajoe    时间: 2004-6-17 19:37
哦,那就是软驱的问题了。谢谢您,非常感谢你耐心细致的解答!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3