AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[ms-access-2010](dba)

Martin Hope
WIL
Asked: 2020-05-16 18:58:59 +0800 CST

CopyFromRecordset 不工作

  • 0

嗨,我插入了一个选择 MaxID+1 数据并想检索我插入的那个 ID 以下是代码

我试图将数据从 Excel 插入 Ms Access 并自动检索该数据。出于多用户目的,我需要专门检索我插入的数据。

Sub PostData()
Dim cnn As ADODB.Connection 'dim the ADO collection class
Dim rst As ADODB.Recordset 'dim the ADO recordset classe here
Dim dbPath
Dim x As Long, i As Long

'add error handling
On Error GoTo errHandler:

dbPath = Sheets("Sheet3").Range("h1").Value

Set cnn = New ADODB.Connection

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath

Set rst = New ADODB.Recordset 'assign memory to the recordset
Sql = "INSERT INTO DvID(DVnumber)SELECT Max(DVNumber)+1 FROM DvID "
rst.Open Sql, cnn
Sheet3.Range("A2").CopyFromRecordset rst
rst.Close
cnn.Close

Set rst = Nothing
Set cnn = Nothing

On Error GoTo 0
Exit Sub
errHandler:

Set rst = Nothing
Set cnn = Nothing

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Export_Data"
End Sub
ms-access-2010 excel
  • 1 个回答
  • 1189 Views
Martin Hope
jdavid05
Asked: 2016-08-05 10:52:07 +0800 CST

查询:MS Access 2010 中两个字段唯一组合的最新记录

  • 0

我正在尝试对某些流量数据进行查询,但遇到了一些麻烦。我想提取每段路的最新数据,但事实证明这比预期的要复杂。

这是我正在使用的数据的示例:

S_ID | DATE      | DIRECTION | AADT
1001 | 9/16/2013 | North     | 700
1001 | 9/16/2013 | South     | 600
1001 | 1/30/2011 | NULL      | 1093
1001 | 2/31/2009 | NULL      | 1091
1211 | 1/17/2012 | NULL      | 945
1235 | 1/23/2014 | North     | 500
1235 | 6/19/2014 | South     | 350
1235 | 5/10/2011 | South     | 354
1235 | 5/10/2011 | North     | 399
1301 | 9/16/2013 | East      | 700
1301 | 4/16/2012 | West      | 600
1301 | 1/30/2014 | NULL      | 1093

我对返回每个 SectionID 和方向的最新 AADT(年平均每日流量)值感兴趣。在上面的数据中,我希望返回以下值:

S_ID | DATE      | DIRECTION | AADT
1001 | 9/16/2013 | North     | 700
1001 | 9/16/2013 | South     | 600
1211 | 1/17/2012 | NULL      | 945
1235 | 1/23/2014 | North     | 500
1235 | 6/19/2014 | South     | 350
1301 | 1/30/2014 | NULL      | 1093

我有以下代码:

SELECT  a.*
INTO    recent_data
FROM    primarytrafficcountdata a
INNER
JOIN    (
        SELECT  section_id,
                direction,
                MAX(date) AS maxdate
        FROM    primarytrafficcountdata
        WHERE   YEAR(date) <= 2014
        AND     YEAR(date) >= 2011
        GROUP BY
                section_id,
                direction
        ) groupeda
ON      (a.section_id = groupeda.section_id
AND      a.direction = groupeda.direction
AND      a.date = groupeda.maxdate)
OR      (a.section_id = groupeda.section_id
AND      a.direction IS NULL and groupeda.direction IS NULL
AND      a.date = groupeda.maxdate)
;

但这返回:

S_ID | DATE      | DIRECTION | AADT
1001 | 9/16/2013 | North     | 700
1001 | 9/16/2013 | South     | 600
1001 | 1/30/2011 | NULL      | 1093
1211 | 1/17/2012 | NULL      | 945
1235 | 1/23/2014 | North     | 500
1235 | 6/19/2014 | South     | 350
1301 | 9/16/2013 | East      | 700
1301 | 4/16/2012 | West      | 600
1301 | 1/30/2014 | NULL      | 1093

这是我想要的最近日期,但我想消除北/南或东/西方向,并且仅在 NULL 方向更新时使用 NULL 方向,反之亦然,当北/南或东/ West 是最近的记录。

有谁知道我会怎么做?

我正在使用 Microsoft Access 2010。

ms-access-2010
  • 1 个回答
  • 33 Views
Martin Hope
Otsdarva
Asked: 2016-07-15 06:48:47 +0800 CST

访问:如何在查询中合并两行数据

  • 0

我有一个格式如下的基本数据集。

Sex1    | Sex2    | Number|  
F       |         | 5     |   
M       |         | 8     |
M       | F       | 5     |   
F       | F       | 3     |
M       | F       | 2     |   
F       | M       | 1     |
F       | F       | 9     |   
M       | M       | 3     |

我想使用 SQL 创建一个查询,该查询按性别组合从价格中生成总计,如下所示:

Sex | Total Number
F   |    5
M   |    8
MF  |    8 
FF  |    12
MM  |    3

但是,我正在努力寻找一种将 FM 和 MF 类别拉到同一行的方法。我拥有的使它们与众不同的代码的形式是

SELECT Sex1 & "" & Sex2 AS Sex, Sum(Number) AS [Total Number]
FROM TableName
GROUP BY Sex1 & "" & Sex2

有没有一种简单的方法来组合行?

ms-access ms-access-2010
  • 3 个回答
  • 3869 Views
Martin Hope
Julius
Asked: 2015-12-22 12:16:57 +0800 CST

如果 0 显示“”,如果 <500 显示“B”,如果 >500 显示“R”

  • 4

我正在 Access 2010 中处理查询并需要帮助。

  • 如果值为 =0 我希望它显示为空白,
  • 如果该值 <500 我希望它显示为“B”,
  • 如果该值 >500 我希望它显示为“R”
ms-access-2010
  • 1 个回答
  • 54 Views
Martin Hope
lmari
Asked: 2015-09-26 07:02:29 +0800 CST

MS Access 2010 在 select 子句末尾添加不需要的通配符

  • 1

MS Access 2010 对我来说有一个非常奇怪的行为。每当我创建一个新查询时,它都会默默地在 SELECT 子句的末尾添加一个通配符(即 ', *')。

通配符仅在 SQL 和数据视图中可见,但在查询结构视图中不可见。

例如,我通过'Create > Query Structure'开始一个新的查询,添加一个表,添加一列,SQL结果是:

SELECT TABLE1.COLUMN1, *
FROM TABLE1;

我该怎么做才能防止出现不需要的尾随通配符?

ms-access ms-access-2010
  • 1 个回答
  • 52 Views
Martin Hope
jotakah
Asked: 2015-07-17 07:23:11 +0800 CST

自动创建唯一的字母数字 ID?

  • 1

我数据库中的所有帐户都有一个唯一的 ID,它以字母“G”(总是)开头,后面有一个 3 位数字(例如“G026”、“G123”、“G005”、“G999”等。 )

当用户通过表单输入新帐户信息时,我希望自动生成唯一 ID。所以我想要一个唯一的“G000”格式的数字,它还没有出现在用户列表中。我已经尝试了一些东西,但是在让它工作时遇到了很多麻烦。

有人对我可以实现的模块有任何想法吗?我正在考虑制作一个生成这些数字的模块,并在“默认值”字段中调用该模块。

谢谢你!!

ms-access ms-access-2010
  • 1 个回答
  • 2372 Views
Martin Hope
Martin F
Asked: 2015-02-25 11:54:23 +0800 CST

如何将 Access 数据库的设计(而非内容)保存为文本?

  • 0

如何将 Access 2007 数据库的整个设计或规范(而非数据内容)另存为文本?

我遇到了“输入参数值”错误,即查询弹出窗口显示了过时的查询名称——尽管已打开名称自动更正选项并运行了压缩和修复数据库。

我读到名称自动更正有问题。我还读到可以将对象另存为文本(在早期版本的 Access 中),并且认为这将是一种在任何地方更改名称的有价值的方法——查询和表单以及表。

请不要试图说服我不要更改名称;这只会让我更加坚定地这样做 ;-)

database-design ms-access-2010
  • 1 个回答
  • 391 Views
Martin Hope
ubiquetous
Asked: 2014-08-18 07:13:40 +0800 CST

Access [SQL] 中最小绝对差的更新查询

  • 0

我在 Access 数据库中有 3 个表。Table_1和Table_2是源数据的来源,我正在填写Table_3。

Table_1 具有以下字段:

  • 账户名
  • 金额

Table_2 有以下字段:

  • 账户名
  • Amt_1
  • Amt_2

Table_3 有以下字段:

  • 账户名
  • 最终值

假设 Table_1.Amt 中的值有效,我想知道 Table_2 中的两个值 Amt_1 或 Amt_2 中的哪一个与 Table_1.Amt 更匹配。Amt_1 和 Amt_2 是通过 2 种不同的求和算法得出的(不同的部分加在一起得出总值)。我想使用更接近的匹配来填充 Table_3.Final_Value。

为简单起见,我们假设 Table_1.Acct_Name 与 Table_2.Acct_Name 一对一匹配。

由于已知对于 Table_2 (Amt_1) - (Amt_2) = 0 中的大部分行,我从以下追加查询开始(Table_3 为空):

INSERT INTO Table_3 ([Acct_Name],[Final_Value])
SELECT [Table_2].[Acct_Name], [Table_2].[Amt_2]
FROM Table_2
GROUP BY [Table_2].[Acct_Name], [Table_2].[Amt_2]
HAVING ((([Table_2].[Acct_Name])<>"0"));

此时,所有 Table_3.Final_value 字段都等于 Table_2.Amt_2,Table_2.Acct_Name 等于 Table_3.Acct_Name。现在,如果 Table_1.Amt 和 Table_2.Amt_1 之间的差值的绝对值小于 Table_1.Amt 和 Table_2.Amt_2 之间的绝对差值(其中 Table_1.Acct_Name 等于 Table_2),我只想将任何 Table_3.Final_Value 更新为 Table_2.Amt_1。账户名。所以我运行以下更新查询:

UPDATE Table_3, 
Table_1 INNER JOIN Table_2 ON [Table_1].[Acct_Name] = [Table_2].[Acct_Name] 
SET [Table_3].[Final_Value] = [Table_2].[Amt_1]
WHERE (((Abs([Table_1]![Amt]-[Table_2]![Amt_1]))<(Abs([Table_1]![Amt]-[Table_2]![Amt_2])))

不知何故,当我运行上面的更新查询时,Table_3.Final_Value 中的所有行都相等。什么!?

任何帮助将不胜感激。提前致谢。

ms-access ms-access-2010
  • 1 个回答
  • 193 Views
Martin Hope
granady
Asked: 2014-08-12 04:45:57 +0800 CST

Microsoft Access 派生表上的 JOIN 不起作用

  • 0

你能帮我解释一下为什么我的下面的 SQL 在 Access 2010 中不起作用吗?

SELECT
  Table2.Product, 
  Table2.Color, 
  SEQMAX,
  Table1.Attribute
FROM 
( 
  Table2

  LEFT JOIN
  (
    SELECT
      Table1.Product, 
      MAX (Table1.Seq) as SEQMAX
    FROM Table1
    GROUP BY Table1.Product
  ) AS MAXTABLE   
  ON  Table2.Product = MAXTABLE.Product
)
LEFT JOIN  Table1
  ON MAXTABLE.SEQMAX = Table1.Seq 
  AND Table2.Product = Table1.Product ;

在我添加最后一行之前很好,AND Table2.Product = Table1.Product这两个部分分别AND工作正常,但是我无法弄清楚为什么它们在组合时不起作用。

我收到一个错误:JOIN expression not supported。

ms-access ms-access-2010
  • 1 个回答
  • 1686 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve