标签: access-vba

更新后更改窗体背景颜色的VBA代码

我需要一些代码,当取消选中复选框时,它会更改我的表单的背景颜色,并在选中时将其恢复为原始颜色.我选中的复选框代码当前会在选择值时锁定组合框.以下示例

Private Sub AccessKeyNo_AfterUpdate()
If MsgBox("Do you want to assign Access Key " & Me.AccessKeyNo & "?", _
        vbYesNo) = vbYes Then
    Me.GuestAccessKeyID = Me.AccessKeyNo

    If Me.Dirty Then Me.Dirty = False
    Me.AccessKeyNo.Requery
    Me.AccessKeyNo = Null

    Me.MyCheckBox = IsNull(Me.GuestAccessKeyID)
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

ms-access vba access-vba

1
推荐指数
1
解决办法
3万
查看次数

有没有办法从损坏的数据库导出代码?

上周我在程序崩溃时修改了访问2010 db中的两个模块的部分,并且每次我尝试打开db时都会崩溃.我能够创建一个新数据库并从损坏的数据库中导入表和查询,但是当我尝试导入表单/宏/模块时,新数据库也会开始崩溃.我保留每日备份,但最终失去了几个小时的工作量.这种情况上周发生了两次,每次MS Access都会在没有警告的情况下崩溃并且VBA无法恢复.

该功能按预期工作,直到db崩溃似乎在某个未知点.我的VBA代码一定存在某种问题,因为这只是在我上周开始修改模块时才开始发生,但我无法确定它,因为在没有执行任何操作时实际发生了崩溃.即在保存期间.

有没有人知道是否可以将VBA导出而无需将其导出到另一个数据库?即导出它而不必使用MS Access这样做.在相关的说明中,是否有人创建了一个库,将查询定义,表模式和所有VBA导出到文本文件中,我可以将它们放入源代码管理中?

谢谢.

ms-access vba ms-access-2007 access-vba ms-access-2010

1
推荐指数
1
解决办法
4401
查看次数

VBA MS Access代码不会运行

我是vba的新手,我正在尝试运行我的第一个VBA代码,我在表单中添加了一个按钮.然后我打开了点击事件并放置

Private Sub run_Click()
MsgBox "hello World"
End Sub`
Run Code Online (Sandbox Code Playgroud)

进入模块,但当我回到表单并在窗体视图中单击按钮时没有任何反应,我做错了什么,我试图运行许多其他代码片段但没有任何工作,我有点不确定我是如何行动的"运行"代码.

在此输入图像描述

我点击运行然后我得到这个

在此输入图像描述

我去了信任中心和启用宏,但我仍然得到这个错误?

//此问题已解决,我的信息中心未启用marcos

ms-access vba ms-access-2007 access-vba

1
推荐指数
1
解决办法
1万
查看次数

Access 2010 VBA Select案例声明

我正在尝试构建一个基于字符串比较使用特定公式的函数

我的问题是我收到了Byref争论类型不匹配错误

它必须与传递用于比较的字符串以及公式的数字有关。有人可以看看和帮助吗?

Public Function MyRateCalc(rateType As String, fixedAmount As Long, minAmount As Long, rateDollar As Long, valPerc As Long, rtValue As Long) As Double

    Select Case rateType

        Case "A1"

            MyRateCalc = fixedAmount * valPerc

        Case "A"

            MyRateCalc = rtValue * rateDollar * valPerc

        Case "B", "C", "D", "H", "L", "N", "R"

            MyRateCalc = IIf(rtValue * rateDollar > minAmount, rtValue * rateDollar * valPerc, minAmount * valPerc)

        Case "M", "U", "MS"

            MyRateCalc = rtValue * rateDollar * valPerc …
Run Code Online (Sandbox Code Playgroud)

vba access-vba ms-access-2010 select-case

1
推荐指数
1
解决办法
3万
查看次数

Access子窗体不显示ado记录集

我正在尝试在数据表视图中的access07子表单中显示ADO记录集.只是一个快照,只读.连接成功,记录集包含数据,但是,当我设置子表单记录集时,不显示任何字段.子窗体显示一个垂直滚动条,当滚动到底部时,它表示正确的记录数,但它没有显示任何字段,没有显示任何列.

这一定很简单,我很想念.有任何想法吗?

编辑:这是建立记录集的代码的摘要.

Set cn = New ADODB.Connection
Set rsADO = New ADODB.Recordset

dbBackend = "C:\Users\Me\Desktop\TEST_Db_Backend.accdb"
sqlStr = "SELECT * FROM tblMaster;"
    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbBackend & ";User Id=;Password=;"

    cn.CursorLocation = adUseClient
    cn.ConnectionString = strConnect
    cn.Open
    If cn.State = adStateOpen Then
        rsADO.Open sqlStr, cn, adOpenStatic, adLockReadOnly
End If

    Set Me.PreviewPane.Form.Recordset = rsADO

rsADO.Close
cn.Close
Set rsADO = Nothing
Set cn = Nothing
Run Code Online (Sandbox Code Playgroud)

vba ado recordset subform access-vba

1
推荐指数
1
解决办法
1638
查看次数

如何以编程方式创建DSN?

我有一个Access表单,它使用链接的sql server表作为数据源.我需要尽快将此文件分发给其他用户,我需要一种方法来以编程方式将DSN安装到他们的计算机上.这是手动设置链接的过程:

外部数据>更多> ODBC数据库>链接到数据源>机器数据源选项卡>按新建>用户数据源> sql server> name =由您决定; server = serverName> SQL Server如何验证登录ID的真实性?使用Windows NT身份验证使用网络登录ID >附加数据库文件名(数据库名称)>选择表并按确定

这就是我访问我的表所做的,但我希望用户可以按下按钮并访问该表,同时通过使用Windows NT身份验证进行身份验证.

我无法找到一种方法来写入访问vba代码可以有人指导我正确的方向吗?

sql-server ms-access vba access-vba

1
推荐指数
1
解决办法
6663
查看次数

访问VBA:日期功能不起作用

我在表单上有一个按钮,显示当前日期.非常简单的代码:

MsgBox DATE
Run Code Online (Sandbox Code Playgroud)

这工作了几个月,但在一些看似无关的更改后,这停止了工作,我得到错误:运行时错误'2465':找不到表达式中引用的字段"DATE".

显然,Access停止将DATE识别为函数,并试图将其作为不存在的对象来查找.在VBA代码中,DATE()立即由DATE替换为Access.

表单中的所有对象都没有命名为Date,控制源表中的任何字段都没有名称Date,所以我不知道为什么Access会混淆.

当我创建一个带有按钮的新表单并使用相同的代码时.有任何想法吗?

excel ms-access vba excel-vba access-vba

1
推荐指数
1
解决办法
2583
查看次数

64位模式下StrPtr类型不匹配

我在Access 2013中使用了下面的代码(从网站上获取了它)。它没有任何问题。

Private Declare Function GdipCreateBitmapFromFile Lib "gdiplus.dll" (ByVal FileName As Long, bitmap As Long) As Long

If GdipCreateBitmapFromFile(StrPtr(sFileName), hPic) = 0 Then ....
Run Code Online (Sandbox Code Playgroud)

在删除Access 2013 64位运行时安装的32位组件后,出现编译器错误。我在声明后添加PtrSafe,编译器就可以了。

Private Declare PtrSafe Function GdipCreateBitmapFromFile Lib "gdiplus.dll" (ByVal FileName As Long, bitmap As Long) As Long

If GdipCreateBitmapFromFile(StrPtr(sFileName), hPic) = 0 Then ....
Run Code Online (Sandbox Code Playgroud)

但是,它将出现运行时错误-StrPtr中的类型不匹配。不知道如何解决。

access-vba 32bit-64bit

1
推荐指数
1
解决办法
6319
查看次数

选择前10名,但选择11名结果

我有以下查询来选择前10名.但是结果显示11行,当我将select更改为前20时,它显示21?

导致此问题的查询是否有问题?

SELECT TOP 10 Format([DutyDate],"ddd"", ""dd-mmm-yy") AS [Shift Date], Count(Shifts.ID) AS Shifts
FROM Shifts
GROUP BY Format([DutyDate],"ddd"", ""dd-mmm-yy")
ORDER BY Count(Shifts.ID) DESC;
Run Code Online (Sandbox Code Playgroud)

sql ms-access access-vba

1
推荐指数
1
解决办法
149
查看次数

生成每个可能的VBA引用GUID的列表

我有一个我在Access 2016中创建的Access数据库.我有一些VBA代码需要Access 2016中的一些库.大多数其他用户具有不同的旧版Access.

例如,我需要运行代码的一个库是Microsoft Access 16.0 Object Library.许多用户正在运行Office 2013,而Microsoft Access 15.0 Object Library不是16.0.

我需要以编程方式在运行VBA代码时添加此版本的库.这需要我知道GUID,我无法在网上找到.我研究过的所有其他领域都告诉你如何获得你活跃的图书馆的GUID,但这对我不起作用,因为我不能使用或罚款15.0库.

如何找到此库的GUID,以及我没有活动或安装的其他库?

excel vba excel-vba access-vba office365

1
推荐指数
1
解决办法
1325
查看次数