[AccessD] ...wizard use in runtimes (A2K3)

MartyConnelly martyconnelly at shaw.ca
Sun Jul 16 19:41:25 CDT 2006


There were some service pack changes Office 2003 SP2 to acwizmain.mde.
I  doubt if it was this, http://support.microsoft.com/kb/821549

However if you just need a random query name why not just create a GUID 
string

'Paul Brower - 02152001
Private Const RPC_S_OK As Long = 0&
Private Const RPC_S_UUID_LOCAL_ONLY As Long = 1824&
Private Const RPC_S_UUID_NO_ADDRESS As Long = 1739&
Private Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(7) As Byte
End Type

Private Declare Function UuidCreate& Lib "rpcrt4" (lpGUID As GUID)
Private Declare Function UuidToString& Lib "rpcrt4" Alias 
"UuidToStringA" (lpGUID As GUID, lpGUIDString&)
Private Declare Function RpcStringFree& Lib "rpcrt4" Alias 
"RpcStringFreeA" (lpGUIDString&)
Private Declare Function lstrlen& Lib "kernel32" Alias "lstrlenA" (ByVal 
lpString&)
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" 
(lpDest As Any, lpSource As Any, ByVal cBytes&)

Public Function CreateGUID() As String
'More GUID routines here
' http://www.trigeminal.com/code/guids.bas

  Dim nGUID As GUID, lpStrGUID&, nStrLen&, sGUID$
  Dim sBuffer() As Byte, bNoError As Boolean


  If UuidCreate(nGUID) <> RPC_S_UUID_NO_ADDRESS Then
    If UuidToString(nGUID, lpStrGUID) = RPC_S_OK Then
      nStrLen = lstrlen(lpStrGUID)
      ReDim sBuffer(nStrLen - 1) As Byte
      CopyMemory sBuffer(0), ByVal lpStrGUID, nStrLen
      Call RpcStringFree(lpStrGUID)
      sGUID = StrConv(sBuffer, vbUnicode)
      CreateGUID = UCase$(sGUID)
      Exit Function
    End If
  End If
  CreateGUID = "Error"
End Function

William Hindman wrote:

>...sorry for previous posting with the wrong subject :(
>
>Group:
>
>...the following function using an access wizard library call works in a 
>full A2K3 install but fails in a
>runtime install"
>
>Private Function ExportRoutine()
>  Dim db As Database
>  Dim qdf As QueryDef
>  Dim lorst As Recordset
>  Dim strName As String
>  Dim strFile As String
>  Const strSpecName = "~~TempSpec~~"
>  On Error GoTo ExportRoutine_err
>  With Me.lstResult
>    strFile = DialogFile(OFN_SAVE, "Save file", "", .Column(3) & " (" &
>.Column(2) & ")|" & .Column(2), CurDir, .Column(2))
>  End With
>  If Len(strFile) > 0 Then
>    'first get a unique name for the querydef object
>    strName = Application.Run("acwzmain.wlib_stUniquedocname", "Query1",
>acQuery)
>    Set db = CurrentDb
>    Set qdf = db.CreateQueryDef(strName, Me.txtSQL)
>    qdf.Close
>    With lstResult
>      Select Case .Column(0)
>      Case 0 'Transferspreadsheet
>        DoCmd.TransferSpreadsheet acExport, .Column(1), strName, strFile,
>True
>      Case 1 'Transfertext
>        DoCmd.TransferText .Column(1), , strName, strFile, True
>      End Select
>    End With
>  End If
>ExportRoutine_end:
>  On Error Resume Next
>  DoCmd.DeleteObject acQuery, strName
>  qdf.Close
>  Set qdf = Nothing
>  db.QueryDefs.Refresh
>  Set db = Nothing
>Exit Function
>ExportRoutine_err:
>  Resume ExportRoutine_end
>End Function
>
>...I'm certain that its because the function uses the acwzmain.mde library
>but I'm not sure I understand why ...if I copythe acwizmain.mde to the
>Office11 directory on the runtime installs, the function still fails ...is
>there any way to force a runtime to use the library ...or do I have to back
>up and approach this in an entirely different way? ...suggestions welcome 
>
>
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada




More information about the AccessD mailing list