Alvaro Teixeira 8/9/2014, 15:32
Olá João,
Estive a ver o código e tive alguns problemas, verifico que o código utilizado no login é do Maestro disponibilizado pelo Mestre Avelino.
A versão que usei foi 2010 e dava-me logo erro ao atribuir o nome no "AppTitle", conforme imagem:
Não consegui identificar o erro e acho esquesito, tenho uma app a rolar no 2010 e não dá o erro, a única diferença é que está em MDE.
No entanto efetuei uma pesquisa e procedi conforme exemplo do MSDN (que resolveu) este erro:
- Código:
Private Function fncTítuloUsuário(Usuário As String) '08-09-2014 alterado AHTEIXEIRA
On Error Resume Next
SetDBProperty "AppTitle", dbText, "Segurança - Usuário: " & Usuário & ""
'CurrentDb.Properties("AppTitle") = "Segurança - Usuário: " & Usuário
Application.RefreshTitleBar
End Function
'08-09-2014 incluido AHTEIXEIRA
'http://msdn.microsoft.com/en-us/library/dd903046(v=office.12).aspx
Private Function SetDBProperty( _
strProperty As String, _
intType As DataTypeEnum, _
varSetting As Variant) As Boolean
On Error GoTo HandleErr
Dim db As DAO.Database
Set db = CurrentDb
db.Properties(strProperty) = varSetting
db.Properties.Refresh
SetDBProperty = True
ExitHere:
Exit Function
HandleErr:
If Err.Number = 3270 Then
Call CreateDBProperty(strProperty, intType, varSetting)
SetDBProperty = True
Else
MsgBox Err.Number & ": " & vbCrLf & Err.Description
SetDBProperty = False
End If
Resume ExitHere
End Function
'08-09-2014 incluido AHTEIXEIRA
'http://msdn.microsoft.com/en-us/library/dd903046(v=office.12).aspx
Private Sub CreateDBProperty( _
strProperty As String, _
intType As DataTypeEnum, _
varSetting As Variant)
On Error GoTo HandleErr
Dim db As Database
Set db = CurrentDb()
Dim prp As DAO.Property
Set prp = db.CreateProperty( _
strProperty, intType, varSetting)
db.Properties.Append prp
db.Properties.Refresh
ExitHere:
Exit Sub
HandleErr:
MsgBox Err.Number & ": " & vbCrLf & Err.Description
Resume ExitHere
End Sub
Relativamente à tua questão optei por criar uma variável global
- Código:
Option Compare Database
Global appUsuario As String
Function getAppUsuario()
getAppUsuario = appUsuario
End Function
Que é atribuída no login
- Código:
'repassa a identificação do usuário para a variável login
login.id = .Column(0) 'IdUsuário
login.Usuario = .Column(1) 'Nome do usuário
appUsuario = .Column(1) 'Nome do usuário '08-09-2014 incluido por Ahteixeira
login.idGrupo = .Column(3) 'Grupo do usuário
No subformulário
subfrm_DetalheSaida coloquei o seguinte código no evento ao carregar
- Código:
Private Sub Form_Load()
txtUsuario = appUsuario
End Sub
Nota o campo está desvinculado, se a ideia é gravar o utilizador, será necessário criar o campo na tabela e definir origem dos dados no campo txtUsuario.
Em anexo o meu teste
Abraço
FarmaciaAHTEIXEIRA.zip
Última edição por ahteixeira em 13/6/2015, 11:19, editado 3 vez(es)