Newsgroup: it.comp.appl.access
Titolo: creazione guidata pacchetti

Ciao a tutti,
ho un problema con OFFDEV XP...
Ho un database che ha delle tabelle collegate e tramite codice VB
all'apertura controlla il collegamento.Funziona ma quando creo il pacchetto
di installazione non funziona più!Non riesce a vedere il BE a cui è
collegato.
Qualcuno ha già creato pacchetti di installazione?Magari sbaglio qualcosa
nelle operazioni?
Roberto

 Dovresti essere più chiaro non vede o non riesce più a collegarsi?
Faccio le stesse installazioni e non ho mai avuto problemi del genere.
Ferrari Rino

 ha scritto nel messaggio
news:IC9db.176719$R32.5...@news2.tin.it...

Hai inserito le librerie DAO nel pacchetto, non vorrei che XP
di Default inserisse solo ADO, e presumo tu abbia usato
Tabledefs oggetto di DAO......!
Hai esplicitato nella tua applicazione gli oggetti DAO.Tabledef /
DAO.Database / DAO.Recordset...??
Ciao.
@Alex.

 ha scritto nel messaggio
news:bl3vf8$h4t$1...@lacerta.tiscalinet.it...

Porc.....ehm...non ho guardato....mi da anche un errore del tipo che non
riconosce il comando Format, quindi potrebbe darsi che sia dovuto alle
librerie?
Ma non capisco come mai se senza creare il pacchetto funzioni e quando creo
il pacchetto dia degli errori.
X Rino Il BE c'è nella cartella ma non riesce a collegare le tabelle.
Praticamente all'inizio fa una verifica sui collegamenti tra FE e BE e se il
percorso non coincide ti viene richiesto di specificarlo, e fin qui va.Ma
una volta indicato il percorso (dove all'interno c'è effettivamente il DB
BE) mi dice che l'archivio non si trova (come da codice se si genera un
errore).
Il comando in VB è questo (è un modulo...è un pò lungo):
Public Function f_ControllaColl(strTab As String) As Boolean
    On Error Resume Next
    Dim dbs As Database
    Dim Rst As Recordset
    Dim strDirMdb As String
    f_ControllaColl = False
    Set dbs = CurrentDb
    Set Rst = dbs.OpenRecordset(strTab)
    If Err <> 0 Then
        strDirMdb = BrowseFolder("Seleziona la directory contenente gli
archivi")
        If strDirMdb = "" Then GoTo Esci
        strDirMdb = strDirMdb & "\" & f_StripPath(f_BEAttuale())
        If Dir(strDirMdb) = "" Then GoTo Esci
        If Not f_AggiornaColl(strDirMdb) Then GoTo Esci
    End If
    f_ControllaColl = True
    Exit Function
Esci:
    MsgBox "Archivio non trovato!", vbCritical + vbOKOnly
End Function
Public Function f_AggiornaColl(strMdb As String) As Boolean
    Dim dbs As Database
    Dim tdf As TableDef
    Set dbs = CurrentDb
    f_AggiornaColl = False
    For Each tdf In dbs.TableDefs
        If (Len(tdf.Connect) > 0) Then
            tdf.Connect = ";DATABASE=" & strMdb
            Err = 0
            On Error Resume Next
            tdf.RefreshLink
            If Err <> 0 Then
                Select Case Err.Number
                    Case 3024
                        MsgBox "Impossibile trovare il file:" & vbCrLf &
Mid$(tdf.Connect, 11), vbCritical + vbOKOnly, "Errore nel collegamento"
                    Case Else
                        MsgBox tdf.Name & vbCrLf & Err.Number & " - " &
Err.Description, vbCritical + vbOKOnly, "Errore"
                End Select
                Exit Function
            End If
        End If
    Next tdf
    f_AggiornaColl = True
End Function
Public Function f_BEAttuale() As String
    Dim dbs As Database
    Dim Rst As Recordset
    Dim strSQL As String
    strSQL = "SELECT Trim([Database]) AS DB " & _
             "FROM MSysObjects " & _
             "GROUP BY Trim([Database]), MSysObjects.Type " & _
             "HAVING (((MSysObjects.Type)=6));"
    Set dbs = CurrentDb
    Set Rst = dbs.OpenRecordset(strSQL)
    f_BEAttuale = Rst![DB]
    Rst.Close
    Set dbs = Nothing
End Function
Public Function f_StripFileName(rsFileName As String) As String
    On Error Resume Next
    Dim I As Integer
    For I = Len(rsFileName) To 1 Step -1
        If Mid(rsFileName, I, 1) = "\" Then
            Exit For
        End If
    Next
    f_StripFileName = Mid(rsFileName, 1, I)
End Function
Function f_StripPath(rsFileName As String) As String
    On Error Resume Next
    Dim I As Integer
    For I = Len(rsFileName) To 1 Step -1
      If Mid(rsFileName, I, 1) = "\" Then
        Exit For
      End If
    Next
    f_StripPath = Mid(rsFileName, I + 1, Len(rsFileName))
End Function


Roberto se il modulo funziona sul tuo Pc allora sicuramente sarà un problema
di Librerie
come dice @Alex  quindi controlla che tali siano registrate e che la
libreria DAO abbia la priorità nella lista.
Ferrari Rino

 ha scritto nel messaggio
news:vFDdb.134148$hE5.4...@news1.tin.it...

Ho controllato ma le librerie ci sono tutte...ho capito più in profondità da
cosa è generato l'errore ma non so come risolverlo.
Oltre al fatto che non trova il riferimento della tabella genera degli
errori su il valore predefinito dei campi:
In due caselle di due maschere differenti ho posto nel valore predefinito
della casella =Date() e
="" &
Format(IIf(IsNull(DMax("[NumeroOrdineAcquisto]";"[Ordini]";"[NumeroOrdineAcq
uisto] like '????/" & Format(Date();"aa") &
"'"));1;Mid(DMax("[NumeroOrdineAcquisto]";"[Ordini]";"[NumeroOrdineAcquisto]
like '????/" & Format(Date();"aa") & "'");1;4)+1);"0000") & "/" &
Format(Date();"aa")  che serve per calcolare il progressivo della fattura ma
genera errori non riconoscendo il comando Format e Date.Perchè?
Grazie dell'aiuto che mi potete dare...
Roberto