小编Han*_*sUp的帖子

检索下一个AutoNumber for Access表

我在Microsoft Access/JET中有一个表,其中有一个自动设置的字段,该字段以增量方式设置,用作表的主键.我需要知道主键的值对于下一个插入的记录是什么,但我需要知道插入记录之前的值.使用SELECT MAX([ID]) + 1 FROM [TableName];将不起作用,因为记录通常从表的末尾删除.(插入新记录只是为了找出值也不是一种选择.)

我知道这可以通过使用SHOW TABLE STATUS命令在MySQL中轻松完成.是否有任何东西可以让我使用ADO,DAO,VB6或任何其他可用工具为Access/JET做同样的事情?

vb6 ms-access

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

如何从一条记录中读取一个字段

我知道我在想这个,但我想检查单个记录中的单个值/字段.例如,我想知道主键为33的记录中"closedDate"字段的值是否为null.

我想的是:

dim db as DAO.Database
dim rs as DAO.Recordset
set db = CurrentDb
set rs = db.OpenRecordset("record_holdData")

If not isNull(rs.Fields("closedDate")) then
     'do nothing
Else
     'add a close date
End If
Run Code Online (Sandbox Code Playgroud)

但我不认为这是对的.它没有指定记录号.在应用程序中,表单通过绑定到相关记录来打开,但我不认为CurrentDb考虑到这一点而是引用整个表.

所以我的问题是,如何以这种方式打开记录集并仅在该特定记录中引用该字段?

ms-access recordset access-vba ms-access-2010

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

使用SQL从另一个Access表更新MSAccess表

我正在尝试使用Final中的值更新表Original.我是SQL的新手,但我已经花了两个小时试图改变各种样本以满足我的需求.我正在使用Access 2007.

UPDATE 
  Original o
SET 
  o.[Assest Description] = (
    SELECT f.[Assest Description] FROM Original o, Final f 
    WHERE o.[Assest No] = f.[Assest No])
WHERE o.[Assest No] = Final.[Asset No]
Run Code Online (Sandbox Code Playgroud)

sql ms-access ms-access-2007

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

如何关闭(卸载)表单

我有一个包含一些按钮的表单,当用户单击按钮时,表单应该关闭(卸载).我使用了以下方法,但都生成了错误:

docmd.close me

unload me
Run Code Online (Sandbox Code Playgroud)

在VBA中关闭或卸载表单的最佳方法是什么(从表单中的代码)

ms-access vba access-vba

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

使用ADODB记录集执行联接更新查询

在下面的代码中,我想将ADODB记录集'rs3'连接到表'tblValueChain10',并根据ADODB记录集'rs3'中提取的值更新3个不同的列.目前,更新查询未返回任何内容.

Dim st_Sql3 As String
Dim rs3 As ADODB.Recordset
Set rs3 = New ADODB.Recordset
Dim Max3 As Integer

rs3.Open "SELECT tblRisk05Holding.IDMacroProcesso01, tblRisk05Holding.Level01Risk, Max(tblRisk05Holding.ManualityStatus) AS MaxDiManualityStatus, Max(tblRisk05Holding.RiskProbabilityStatus) AS MaxDiRiskProbabilityStatus, Max(tblRisk05Holding.RiskExposureStatus) AS MaxDiRiskExposureStatus FROM tblRisk05Holding GROUP BY tblRisk05Holding.IDMacroProcesso01, tblRisk05Holding.Level01Risk", CurrentProject.Connection


st_Sql3 = "UPDATE tblValueChain10 INNER JOIN rs3 ON (tblValueChain10.IDMacroProcesso01 = tblRisk05Holding.IDMacroProcesso01) SET L1RiskManuality = " & rs3.Fields(2) & ", L1RiskProbability = " & rs3.Fields(3) & ", L1RiskGravity = " & rs3.Fields(4) & ""
Application.DoCmd.RunSQL (st_Sql2)

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

sql ms-access access-vba ms-access-2010

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

VBA OpenRecordset 产生错误 3061

databasename = "qryDataExport"
Dim grpfield As String
grpfield = "Group"

Dim keys As DAO.Recordset
groupcmd = "SELECT [" & databasename & "].[" & grpfield & "] FROM [" & databasename & "] GROUP BY [" & databasename & "].[" & grpfield & "]"
Set keys = CurrentDb.OpenRecordset(groupcmd, dbOpenSnapshot)
Run Code Online (Sandbox Code Playgroud)

以上产生“错误 3061:参数太少。预期为 13。” 运行时。到目前为止,我的阅读已经严重暗示这可能是字段标题不正确的拼写问题或由定义 groupcmd 的行中的不正确引用引起的问题。

我为 databasename 尝试了以下格式:

CurrentDb.Queries.qryDataExport
CurrentDb!Queries!qryDataExport
Run Code Online (Sandbox Code Playgroud)

而以上"qryDataExport"。后两个不提供错误消息,而第一个不编译。我已经确认在主表和 qryDataExport 中都有一个名为 Group 的列。

正在使用的模块来自这个 Google 代码页

(编辑:截至此时的完整编辑模块:http : //pastebin.com/TJip86ED

从我所看到的情况来看,我认为这是数据库名称定义中一个非常明显的格式错误,但是我没有足够的 VBA 经验来发现它,而且我的想法已经用完了。任何建议将不胜感激。

EDIT2: …

ms-access vba

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

MS Access中未定义"FileDialog"类型

在Access 2016中,我希望显示" 文件打开"对话框,允许用户选择要导入的CSV文件.但是,与线路相关的错误正在产生Dim FD as Office.FileDialog-

编译错误:未定义用户定义的类型

以下代码已从MSDN上发布的示例中复制(并稍微编辑).此示例被列为与Office 2013及更高版本相关,但代码中的第一个注释(与变量类型Office.FileDialog相关)似乎对此进行了谴责 -

需要引用Microsoft Office 11.0对象库.

当然,对于Office 2013,您需要引用MS Office 15对象库,然后引用相应的版本库以用于未来版本,例如2016?

但无论如何,在Access 2016中都没有引用Microsoft Office 11.0对象库.但是,它包含对Microsoft Access 16.0对象库的引用.

如何显示" 文件打开"对话框?

Function SelectFile(Optional ByVal title As String = "Please select a file", _
                    Optional ByVal allowMultiSelect As Boolean = False) As Variant

    Dim FD As Office.FileDialog
    Dim file As Variant

    Set FD = Application.FileDialog(msoFileDialogFilePicker)

    With FD

        .title = "Please select a file"         ' Add the …
Run Code Online (Sandbox Code Playgroud)

ms-access vba access-vba office-2016

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

无法将字典作为参数传递给VBA函数

我有一个VBA函数,它应该将Dictionary作为参数:

Function ShowDict(Dict1 As Dictionary)
   For Each x In Dict1
        MsgBox (Dict1.Item(x))
   Next
End Function
Run Code Online (Sandbox Code Playgroud)

我试图通过以下方式调用它:

Dim Dict As Dictionary
Set Dict = Dictionary
Dict.Add "Owner", "John"
Dict.Add "Employee", "Sam"
ShowDict (Dict)
Run Code Online (Sandbox Code Playgroud)

在定义词典之前,我确实从References中选择了Microsoft Scripting References.但是,当我尝试使用'Dict'作为参数调用函数时,我得到一个编译错误,声明' Argument not optional '.谁能帮我?

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

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

打开表显示"输入参数值"

我已经对Access数据库做了一些事情,现在当我双击一个表(所有Access Objects | Tables)时,它会弹出"输入参数值"对话框.它要求的参数是TableName.ColumnName形式,而ColumnName确实是TableName中的一列,但TableName不是我打开的表.因为它是我正在打开的表,而不是查询或报告等,我不知道是什么导致了这个或怎么做.如果我只是热,那么好像打开桌子好了,但是如果可以的话我想修理它.

ms-access ms-access-2007

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

VBA-使用DAO对象的运行时错误3271

我正在尝试使用DAO.QueryDefAppendMicrosoft Access中的本地查询来更新SQL Server数据库。我正在更新的某些字段包含很长的字符串(从字符0700字符的任何地方)。

当字符串长度在从0255字符的范围内时,我毫无疑问将其传递到查询中并更新相应的表。但是,当它们超过255字符数时,我会收到以下运行时错误:

VBA运行时错误3271

我一直在使用随机字符串生成器网站来创建和测试不同长度的字符串。我还检查了我的数据库中的列数据类型,它们都NVARCHAR(MAX)在需要的地方。Microsoft Access显示与数据类型相同的各个列Long text

请参阅以下代码片段:

Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef

Set dbs = CurrentDb

If Not IsNull(cmbboxFileNameLogic) Then
    Set qdf = dbs.QueryDefs("qryUpdateFile")

    qdf.Parameters("FileName").Value = txtboxUpdateConversionName.Value
    qdf.Parameters("ZipFileName").Value = txtboxZipFileNameLogic.Value
    qdf.Parameters("OutputFormat").Value = txtboxOutputFormat.Value
    qdf.Parameters("Delimeter").Value = txtboxDelimeter.Value
    qdf.Parameters("DestinationLocation").Value = txtboxDestinationLocation.Value
    qdf.Parameters("DeliveryMechinism").Value = txtboxDeliveryMechinism.Value
    qdf.Parameters("Note").Value = txtboxOutputFileInfoNotes.Value
    qdf.Parameters("Criteria").Value = txtboxOutputFileInfoCriteria.Value
    qdf.Parameters("CustomListKey").Value = txtboxCustomListKey.Value
    qdf.Parameters("ExcludeCustomListKey").Value = txtboxExcludeCustomListKey.Value
    qdf.Parameters("NewspaperFlag").Value = …
Run Code Online (Sandbox Code Playgroud)

ms-access vba dao access-vba

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