[AccessD] Detecting CD Drive Constantly

MartyConnelly martyconnelly at shaw.ca
Sun Mar 21 16:31:55 CST 2004


Try this method Enumerating Local and Network Drives
It works for me on a laptop
uses GetLogicalDriveStrings rather than looping  through GetDriveType
http://www.mvps.org/access/api/api0003.htm

Dean Ellis wrote:

>Hi All,
>
>
>
>I'm having some trouble with a database that is required to detect the CD
>Drive of the Computer it is running from. The code that is in there works
>for Desktop computers, but not Laptops., and even then, this is not garuntee
>
>
>
>
>Here is the code on the module:
>
>
>
>Public Function SaveAndGetCDROMDriveLetter() As String
>
>  
>
>  Dim DriveChar As Byte
>
>  Dim tmpDrive As String
>
> Dim CDDRiveLetter As String
>
>
>
>SaveAndGetCDROMDriveLetter = "Unknown"
>
>
>
>  On Error GoTo ErrorHandler
>
>  
>
>  For DriveChar = 0 To 25
>
>    tmpDrive = Chr(65 + DriveChar) & ":\"
>
>    If (GetDriveType(tmpDrive) = DRIVE_CDROM) Then
>
>     SaveAndGetCDROMDriveLetter = tmpDrive
>
>      Exit For
>
>    End If
>
>  Next DriveChar
>
>  
>
>  
>
>  CDDRiveLetter = GetSetting("IAQ_JLW2", "Preferences", "CDDRiveLetter", "")
>
>   
>
>  
>
>  If IsNull(CDDRiveLetter) Or CDDRiveLetter = "" Then
>
>    'No Cd Drive ltter set so set one
>
>    SaveSetting "IAQ_JLW2", "Preferences", "CDDriveLetter",
>SaveAndGetCDROMDriveLetter()
>
>    'Me!ctlCDRomDriveLetter = GetSetting("IAQ_JLW2", "Preferences", 
>CDDRiveLetter", "")
>
>    'Me!ctlCDRomDriveLetter.Requery
>
>  Else
>
>    'There is a Cd Drive Ltter and it is...
>
>    'Me!ctlCDRomDriveLetter = GetSetting("IAQ_JLW2", "Preferences", 
>CDDRiveLetter", "")
>
>  End If
>
>
>
>   
>
>ErrorHandler:
>
>  Exit Function
>
>    
>
>End Function
>
>
>
>--------------------------------------------------------------------
>
>
>
>The code in one of the forms, bearing in mind that this is used in any form
>that requires a fie path to a file:
>
>
>
>Private Sub PadPath()
>
>Dim CDDrive, MoviePath, StillPath As String
>
>Dim x, y As String
>
>'On Error Resume Next
>
>
>
>'CDDrive = DLookup("[CDRomName]", "tblDefaults") & "\"
>
>CDDrive = GetSetting("IAQ_JLW2", "Preferences", "CDDRiveLetter", "")
>
>MoviePath = DLookup("[DefaultMoviePath]", "tblDefaults")
>
>'StillPath = DLookup("[DefaultStillPath]", "tblDefaults")
>
>
>
>x = CDDrive & MoviePath 
>
>'y = CDDrive & StillPath 
>
>
>
>Me!ctlPath = x & ctlPath
>
>End Sub
>
>
>
>-----------------------------------------------------------------------
>
>
>
>I hope this gives you some idea as to what I am trying to do. I have also
>trying manually setting the drive letter. The problem with this is the CD
>can only be as Read only so the Records wont change. I am trying to 'dim'
>the drive selection manually, but it won't read the public string
>declaration.
>
>
>
>
>
>Any help would be great
>
>
>
>Cheers
>
>
>
>Dean
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada






More information about the AccessD mailing list