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