在MS Access中,如何在MessageBox中获取和回显用户ID?

时间:2019-01-07 23:27:14

标签: ms-access

Access 2007-2016,Microsoft Office ProPlus

Access和VBA新手,所以请忍受:-)

尝试从系统获取用户ID,然后将其粘贴在消息框中。这是我的原型尝试(宏)...

SetLocalVar
    Name theuser
  Expression = fOSUserName()

MessageBox
  Message "Hi there..." & theuser
  Beep No
  Type Information
  Title sayhi

fOUserName是我从http://www.databasedev.co.uk/get_username_or_computername.html获得的宏 我在Access中将它称为“模块”,称为“ getuser”。这是代码...

Option Compare Database

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
' Returns the network login name
  Dim lngLen As Long, lngX As Long
  Dim strUserName As String
  strUserName = String$(254, 0)
  lngLen = 255
  lngX = apiGetUserName(strUserName, lngLen)
  If lngX <> 0 Then
    fOSUserName = Left$(strUserName, lngLen - 1)
  Else
    fOSUserName = "NoMan"
  End If
End Function

无错误消息
USysApplicationLog中什么都没有

然后我尝试简单地回显一个称为“ testvar”的硬编码变量的值。...

SetLocalVar
    Name testvar
  Expression "foo"

我在MessageBox中用“ testvar”替换了“ theuser”,尝试了一下,但是也失败了。

很明显,我不知道要使Messengersbox(在Access中)回显一个变量,并且需要帮助。

但是,如果可能的话,我也想对fOUserName函数进行任何批评。这会给我我想要的东西吗?如果没有,有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

使用以等号开头的表达式来访问变量。

enter image description here

答案 1 :(得分:0)

如果您使用的是VBA代码,则只需键入Msgbox并按ctrl +空格键以启用“智能感知”,它将告诉您所需的参数。我确实不知道参数的具体名称,但我将解释我最常使用的前三个参数。

Msgbox [arg1],[arg2],[arg3]

[arg1] =要显示的消息
[arg2] = msgbox类型。您可以指定是是/否对话框还是简单的消息框。对于简单的msgbox,您也可以使用vbInformation,vbCritical和其他工具来显示不同类型的msgbox图标,并且vbCritical也主要用于捕获错误并产生错误(哔)声。
[arg3] = Msgbox的标题

对于您的用户情况,您可以使用此msgbox

df1 <- structure(list(ID = 1:10, friend_1 = c(4L, 8L, 9L, 15L, 1L, 9L, 
19L, 7L, 1L, 7L), friend_2 = c(12L, 6L, 18L, 7L, 17L, 19L, 12L, 
1L, 10L, 11L), friend_3 = c(7L, 7L, 1L, 2L, 9L, 20L, 20L, 16L, 
12L, 9L), bully_1 = c(12L, 18L, 2L, 7L, 17L, 14L, 9L, 2L, 1L, 
11L), bully_2 = c(15L, 20L, 1L, 13L, 1L, 12L, 12L, 15L, 7L, 7L
)), class = "data.frame", row.names = c(NA, -10L))

如果您希望它在每次打开数据库时都出现,只需创建一个vba模块,在其中复制上面的代码行并将其保存为“ autoExec”,它将在每次打开数据库时自动执行。