Proprietà non trovata errore 3270

di
Anonimizzato14058
il
6 risposte

Proprietà non trovata errore 3270

Ciao a tutti, sono nuovo del forum, appena iscritto e ho già una domanda per voi
Ho creato un db diviso in FE e BE, con Access 2007, lavorando come utente su piattaforma windows 7.
Trasportato il db su Xp, il db funziona completamente solo se lo uso come amministratore mentre se lo apro come utente si presenta una finestra messaggio con:

Errore di run-time 3270 Proprietà non trovata.
Ho anche pensato ad un problema di permessi sui file ma controllando sono identici.
Premetto che non tutto il codice è farina del mio sacco.
Nella form che gestisce il db e che riamane sempre aperta si trovano:

Private Sub Form_Close()
On Error GoTo Errore
     'scrive e salva le proprietà
  procSetCreatePrp "Forms", Me.Name, Me!SerialeHD.Name, Me!SerialeHD
  procSetCreatePrp "Forms", Me.Name, Me!UsName.Name, Me!UsName
  
ExitErrore:
Exit Sub

Errore:
MsgBox Err.Description
Resume ExitErrore
  
End Sub
------------------------------------

Private Sub Form_Open(Cancel As Integer)
On Error GoTo Errore
    Dim MostraNome As String
    
    'chiude la splash
   DoCmd.Close acForm, "SplashScreen"
   
     MostraNome = Environ("UserName")
  
' 'legge le proprietà
  Me!SerialeHD = fctGetPrp("Forms", Me.Name, Me!SerialeHD.Name)
  Me!UsName = fctGetPrp("Forms", Me.Name, Me!UsName.Name)

    With Me
'controlla quanto è scritto nelle due caselle di testo
    If .SerialeHD = "ZZZZZZ" And .UsName = "ZZZZZZ" Then
      .UsName = MostraNome
      .SerialeHD = GetSerialNumber
    End If

'in caso di non corrispondenza con quanto scritto nelle proprietà mostra messaggio
' e chiude l'applicazione
    If .SerialeHD <> "ZZZZZZ" And .UsName <> "ZZZZZZ" Then
      If .UsName <> MostraNome Or .SerialeHD <> GetSerialNumber Then
          MsgBox "Non si dispone delle credenziali adatte a far funzionare il programma." _
          & vbCrLf & vbCrLf & "Tentativo di copiare l'applicazione" _
          & vbCrLf & vbCrLf & "L'applicazione verrà chiusa", vbCritical, "Entriamo in azienda 4 - Attenzione"
          Cancel = True
          'per chiudere l'applicazione usare application.quit
          Application.Quit
          Exit Sub
       End If
    End If
    End With
    
ExitErrore:
Exit Sub

Errore:
MsgBox Err.Description
Resume ExitErrore

End Sub
-------------------------
Sub procSetCreatePrp(strObjType As String, strObjName As String, strPrpName As String, strValue As String)
'crea le proprietà
On Error GoTo ErrPrp

  Dim db As DAO.Database
  Dim doc As DAO.Document

  Set db = CurrentDb
  Set doc = db.Containers(strObjType).Documents(strObjName)

  doc.Properties(strPrpName) = strValue

ExitPrp:
Exit Sub

ErrPrp:

  Select Case Err.Number
    Case 3270 ' Property non è ancora presente
      doc.Properties.Append doc.CreateProperty(strPrpName, dbText, strValue)
    Case Else
      MsgBox "Eccezione divertente " & Err.Number & " vuol dire: " & Err.Description
  End Select

Resume ExitPrp

End Sub
---------------------------------------
Function fctGetPrp(strObjType As String, strObjName As String, strPrpName As String)
''imposta le proprietà
On Error GoTo ErrPrp
  
 fctGetPrp = CurrentDb.Containers(strObjType).Documents(strObjName).Properties(strPrpName)

ExitPrp:
Exit Function

ErrPrp:
'controlla se l'applicazione è stata già installata o è la prima installazione
 If intMsg = 1 Then
  Else
     MsgBox "Primo utilizzo" & vbCrLf & vbCrLf & "Buon lavoro !" & vbCrLf & vbCrLf & "OK per continuare ", vbInformation, "Entriamo in azienda 4 - Info"
  End If
  intMsg = 1
End Function
Scusandomi per la lunghezza del post, ringrazio per l'aiuto che certamente otterrò.

6 Risposte

  • Re: Proprietà non trovata errore 3270

    Ciao, benvenuto.
    l'errore quando di esce? all'apertura del db, nell'evento load, in quello close o in altro evento?

    quando dici:
    se lo uso come amministratore
    intendi che carichi xp con un account amministratore o che esegui il caricamento del db come amministratore?

    saluti
  • Re: Proprietà non trovata errore 3270

    Ciao e grazie del benvenuto, ho inserito anche un pulsante che sull'evento click ha una routine per cancellare le due proprietà che dovrebbero essere create in fase di chiusura della form.
    Come al solito accedendo ad xp come utente, avviando il db si apre la splash screen clicco sul pulsante Avvio e li viene presentato il msg di errore, perchè la Sub va a leggere le proprietà.
    Stessa cosa in chiusura della form, in quanto la routine abbinata all'evento crea le proprietà, se non ci sono già.
    Forzando la creazione, ossia rendendo commentile due righe:
    ' 'legge le proprietà
      Me!SerialeHD = fctGetPrp("Forms", Me.Name, Me!SerialeHD.Name)
      Me!UsName = fctGetPrp("Forms", Me.Name, Me!UsName.Name)
    le proprietà vengono create, riattivandole, tutto funziona eccetto la loro cancellazione:
    errore 3265 Elemento non trovato in questo insieme
    Accedendo ad xp come amministratore nessun problema.

    In fase di debug sembra che sebbene ci sia la gestione degli errori(On error goto...)non si attivi
  • Re: Proprietà non trovata errore 3270

    Sembra sia tutto esatto

    non ho xp ma tanto per toglierti uno scrupolo... prova a creare un nuovo db in xp da amminstratore... metti un pulsante che ti crei una proprietà sulla form e uno che te la legge... imposta tale proprietà.

    Poi carichi come utente e provi a leggerla... non vorrei fosse un bug... tipo proprietà valide solo per l'utente che le ha create... è strano...

    a me con win 7 access 2010 funziona... mah!!
  • Re: Proprietà non trovata errore 3270

    Ciao, una parte del codice, come detto non è farina del mia sacco, lo stesso demo l'ho provato sia come amministratore che utente e, nel primo caso tutto ok mentre nel secondo....
    pensa che se per te è strano per me che ci
    ora ho trovato dei link nuovi vediamo
  • Re: Proprietà non trovata errore 3270

    Ultimo tentativo di oggi:
    creato collegamento ad Access.exe sul desktop dell'utente poi -->Esegui come (amministratore) aperto il db in questione, debug passo passo, funziona.
    Ora più che mai credo sia una questione di limiti/privilegi.
    Con Xp da utente non c'è niente da fare!!!!!
    E' anche vero che dovrei fornire il run-time di Access2007, file accdbe su piattaforma win7 però volevo vedere se funzionava anche su Xp.
  • Re: Proprietà non trovata errore 3270

    Segnalo questo:
    "http://forum.ialweb.it/forum_posts.asp?TID=16465125&title=risoltopropriet-non-trovata"
Devi accedere o registrarti per scrivere nel forum
6 risposte