小编Han*_*sUp的帖子

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

我知道我在想这个,但我想检查单个记录中的单个值/字段.例如,我想知道主键为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万
查看次数

如何使用VBA清除Access中的表?

我想要做的是,在Excel中,使用VBA将数据推送到现有的Access表.我已经能够做到这一点,但我有一个小打嗝.在我将数据推送到访问之前,我想清除Access表上的当前数据,因此当Excel中的新数据进入时,它是Access表中的唯一数据.我真的不知道如何为Access编写代码,因为该类已经在VBA for Excel上.我尝试了几种不同的方法,每次都不起作用.例如,似乎应该工作的代码是

DoCmd.RunSQL "DELETE tblName.* FROM CoversheetTableFourthAttempt
Run Code Online (Sandbox Code Playgroud)

但是我告诉我定义一个对象时出错.

如果你可以帮助我,我会真的很喜欢它

我把我的代码放在下面以供参考.

Sub AccessFourthMonth()

Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
    ' connect to the Access database
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
        "Data Source=C:\Users\Kent\Documents\MBA\Winter 2009 Semester\MBA 614\Final Project\shilded\testdatabase.mdb"


' open a recordset
Set rs = New ADODB.Recordset

rs.Open "CoversheetTableFourthAttempt", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 2 ' the start row in the worksheet

Do While Len(Range("A" & …
Run Code Online (Sandbox Code Playgroud)

excel ms-access vba excel-vba access-vba

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

计算MS-Access中同一字段中的两种值

我有这个表customerDetail,其中有一个字段c_type,其中"a"代表"active"而"d"代表"not-active".现在我必须在同一查询中找到它们的计数.
我用过这些但没有结果.

SELECT Count(c_type) AS Active, Count(c_type) AS Not_Active  
FROM customerDetail  
WHERE c_type="a" OR c_type="d"
Run Code Online (Sandbox Code Playgroud)

当然我知道它看起来很脏,但我也尝试了这个,但这也没有用 -

SELECT
    Count(customerDetail.c_type) AS Active,
    Count(customerDetail_1.c_type) AS Not_Active  
FROM customerDetail INNER JOIN customerDetail AS customerDetail_1  
ON customerDetail.Id=customerDetail_1.Id  
WHERE (customerDetail.c_type="a") AND (customerDetail_1.c_type="d")
Run Code Online (Sandbox Code Playgroud)

但是它也没有用,所以有人可以告诉我,我应该如何知道同一查询中活动和非活动的计数?

sql t-sql ms-access ms-access-2007

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

您无法添加或更改记录,因为表 'table_name' 中需要相关记录

我刚刚接管了访问网站,我试图弄清楚为什么当我尝试更新一张表中的记录时,它向我提供了这条消息。

“Microsoft JET 数据库引擎错误‘80040e21’

You cannot add or change a record because a related record is required in table 'Members'. "
Run Code Online (Sandbox Code Playgroud)

我如何找出相关记录是什么。

感谢您的帮助

ms-access asp-classic

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

从SQL Server插入Access

我希望将SQL Server中的几千条记录复制到C#中的Access中.另一个方向使用SqlBulkCopy.有没有相反的做法?

我正在尽力避免在每条记录中循环遍历每个字段并构建一个令人发指的Insert声明,不仅要花费很长时间才能运行,而且如果有任何变化,可能会崩溃.

c# sql-server ms-access

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

下拉列表 - 默认值

我有一个所有可用打印机的下拉列表:

Private Sub Form_Load()
    For Each l_pr In Application.Printers

      Me.dropdown.RowSourceType = "Value List"
      Me.dropdown.AddItem l_pr.DeviceName
   Next

   Me.dropdown.DefaultValue = Application.Printer.DeviceName

End Sub
Run Code Online (Sandbox Code Playgroud)

我想在加载表单时选择默认打印机.我认为你可以用DefaultValue做到这一点(参见我的代码),但没有任何东西以这种方式显示.

我怎样才能做到这一点?

ms-access access-vba

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

查询结果未显示具有空值的记录

我正在设计一个搜索表单,根据4个文本字段,Firstname,Surname,Phonenumber和Promo Code搜索我的访问数据库.

查询看起来像:

Like "*" & [Forms]![SearchF]![txtFirstName] & "*"
Like "*" & [Forms]![SearchF]![txtSurnameName] & "*"
Like "*" & [Forms]![SearchF]![txtPhone] & "*"
Like "*" & [Forms]![SearchF]![txtPromo] & "*"
Run Code Online (Sandbox Code Playgroud)

如果所有字段都为空,则搜索应返回所有记录.在文本框中输入一些值时,结果将缩小为匹配.

它几乎可以正常工作,但是当某些字段中没有值时会出现问题.例如,如果某人没有促销代码,那么即使您将其留空,也会始终跳过他们的记录.我假设访问查询不喜欢空白字段.

什么是解决这个问题的最简单方法?

ms-access ms-access-2010

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

在MS Access中,ADO相当于NZ功能?

我有以下命令对象:

ADODB::_CommandPtr pCmd("ADODB.Command");

pCmd->ActiveConnection = pConn;
pCmd->CommandType = ADODB::adCmdText;
pCmd->CommandText = L" select ID, NZ(PaymentAmount, 0) from Contracts;";

ADODB::_RecordsetPtr pRS = pCmd->Execute(NULL, NULL, ADODB::adCmdText);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会报告NZ功能不存在的错误.

我自己研究,发现我不能NZ在ADO查询中使用.

题:

ADO是否等同于此功能?

c++ sql ms-access ado ms-access-2007

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

如何比较创建的MS-Access和表,查询,表单等的上次修改日期?

我喜欢在Access 2010数据库中创建和更新表,查询,表单等时创建列表.

从理论上讲,这可以通过一些VBA代码实现,但不幸的是,这段代码显示了错误的信息.我自己测试了它,微软在这里证实了这一点:https://support.microsoft.com/en-us/kb/299554

Access在导航面板上显示正确的修改日期,但似乎无法通过VBA或任何表格访问此信息.前段时间我在互联网上搜索过这个问题,有几个人证实了这个问题,但没有人得到答案.

现在我的问题:有人知道如何从Access导出正确的修改日期信息(显示在导航面板中)?

如果这是不可能的(我目前的研究表明这一点),是否有人知道将一个数据库文件与另一个数据库文件进行比较并显示表格,查询,表格等的所有差异的可靠方法?

这完全是关于Access对象的设计,而不是关于表中存储的任何数据.

ms-access vba access-vba datemodified

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