Remoteopenform

di il
3 risposte

Remoteopenform

Buonasera,
chiedo il Vostro aiuto perché aprendo una maschera su altro DB tramite un comando, nel DB di destinazione si creano due nuovi record anziché uno come correttamente dovrebbe funzionare, dove sbaglio ? il codice è il seguente:

Function OpenRemoteForm(strMDB As String, strForm As String) As Boolean
Dim Msg, Style, Title, Response
Dim objAccess As New Access.Application
Dim lngRet As Long
Dim str As String
Dim numt As Long
Dim numm As Long
Dim it As Long
Dim im As Long
Dim vart As Long
Dim varm As Long
Dim rstT As New ADODB.Recordset
Dim rstM As New ADODB.Recordset

str = Right(DLookup("EsercizioF", "TblEsercizio"), 4)
strMDB = "C:\Users\fabrizio.nistri\Desktop\GESTIONE_AGRICOLTURA\GESTIONE_AGRICOLTURA_" & str & "\moM.accdb"

'trattori
tr:
strForm = "TRATTORI"
If Len(Dir(strMDB)) > 0 Then
Set objAccess = New Access.Application
With objAccess
lngRet = apiSetForegroundWindow(.hWndAccessApp)
lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL)
lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL)
.OpenCurrentDatabase strMDB
vart = DLookup("[IdTrattore]", "Trattori", "[IdTrattore] =" & Form_FRM_SUBORE.Mezzo.Column(0))
rstT.Open "Select * From Trattori ORDER BY IdTrattore", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
numt = rstT.RecordCount
For it = 1 To numt
If vart = rstT!IdTrattore Then
Exit For
End If
rstT.MoveNext
Next it
.DoCmd.OpenForm strForm, acNormal, , , acFormEdit, acWindowNormal
.DoCmd.GoToRecord acDataForm, strForm, acGoTo, it
.Forms.Item(SUB_TRATTORI).TR_ENTRY_EST = "S"
.Forms.Item(strForm).appoData = Form_FRM_RILEVAZIONI.Data
.Forms.Item(strForm).appoDIPE = Form_FRM_RILEVAZIONI.Dipendente
.DoCmd.GoToControl "SDIT"
End With
rstT.Close
GoTo OpenRemoteForm_Exit:
End If

grazie mille per la Vostra collaborazione
cordiali saluti
Fabrizio Nistri

3 Risposte

  • Re: Remoteopenform

    Mi viene da chiedere perché apri tutto un DB esterno per aggiungere un record...?
    In ogni caso se lavori da codice lavori senza appoggiati all'interfaccia che scatena eventi che poi non controlli... ma operi su tabella e poi eventualmente apri la maschera...

    P.s. il codice devi racchiuderlo nel tag CODE.
  • Re: Remoteopenform

    Ciao Alex,
    perchè in db gestisco le attività nell'altro gestisco le macchine agricole
    ps: il record doppio viene creato sempre nel primo record della tabella di destinazione
    ps: non sono molto esperto: cosa intendi per tag CODE ?
    grazie di nuovo, ciao
    fabrizio
  • Re: Remoteopenform

    fabrizionistri ha scritto:


    Ciao Alex,
    perchè in db gestisco le attività nell'altro gestisco le macchine agricole
    Questo è un grosso errore... il DB deve essere uno solo, o almeno unica l'interfaccia collegata ad entrambi...
    Avere 2 DB separati che devono poi in realtà scambiare dati come fai tu... è illogico in uno scenario come questo sviluppato in Access in locale... ma è ovviamente fattibile tuttavia si gestiscono poi con un'interfaccia di LinkedTable... in modalità FrontEnd--BackEnd

    fabrizionistri ha scritto:


    ps: il record doppio viene creato sempre nel primo record della tabella di destinazione
    ps: non sono molto esperto: cosa intendi per tag CODE ?
    grazie di nuovo, ciao
    fabrizio
    Credo il problema dell'esperienza sia una grossa quota parte dell'anomalia..., non procedo oltre, ti ripeto che l'unico suggerimeno che ti do è riflettere sulla reale esigenza di avere 2 DB separati... in caso puoi sempre realizzare un'applicativo Interfaccia che si Collega ad entrambi come se lavorassi sempre in LOCALE con un unico DB... ma tutto questo passa per conoscere come lavora Access in modo più tecnico, e non so se queste mie parole siano comprensibili tecnicamente ....
Devi accedere o registrarti per scrivere nel forum
3 risposte