Ms access 字符串、长文本和短文本的长度是多少?将长文本设置为SQL参数会导致错误3001
当我在ms access 2013中创建带有参数的追加查询,并且这些参数的任何类型都设置为Ms access 字符串、长文本和短文本的长度是多少?将长文本设置为SQL参数会导致错误3001,ms-access,vba,ms-access-2013,Ms Access,Vba,Ms Access 2013,当我在ms access 2013中创建带有参数的追加查询,并且这些参数的任何类型都设置为LongText时,查询失败,错误代码3001无效参数。但是,将类型更改为ShortText会导致一个工作查询。两个版本都可以通过双击access本身中的查询来运行,但第一个版本在通过以下代码运行时失败: Dim db As DAO.Database Set db = CurrentDb Dim qdf As QueryDef Set qdf = db.QueryDefs("NeuerFachlicherI
LongText
时,查询失败,错误代码3001无效参数
。但是,将类型更改为ShortText
会导致一个工作查询。两个版本都可以通过双击access本身中的查询来运行,但第一个版本在通过以下代码运行时失败:
Dim db As DAO.Database
Set db = CurrentDb
Dim qdf As QueryDef
Set qdf = db.QueryDefs("NeuerFachlicherInhalt")
qdf!Inhalt = inhalte("DefaultInhalt")
qdf!Formular = inhalte("Formular")
qdf.Execute
我插入参数的表的字段类型为LongText
,因此我希望它能起作用-这里问题的根本原因是什么?如果我无法指定LongText
作为参数,那么如何传入长文本
我认为这可能与access中字符串的长度限制有关。这些限制究竟是什么?Google将您转到关于字符串长度的问题,但我无法找到长度问题的确切答案:
的文本可以有多长ShortText
的文本可以有多长LongText
- vba
字符串的文本可以有多长
长文本中的参数,短公式;
插入FachlicherInhalt(Inhalt,公式化)
选择[Inhalt]作为Expr1,选择[Formular]作为Expr2;
ALT Text(255)中的参数,公式简短;
插入FachlicherInhalt(Inhalt,公式化)
选择[Inhalt]作为Expr1,选择[Formular]作为Expr2;
只要我正确地阅读了您的问题,我几乎可以肯定您不能使用longtext/memo字段作为参数。根据此处提供的信息:
(在Access 2013之前仅为ShortText
)最多可包含255个字符Text
(LongText
在Access 2013之前)的长度最多可达1 GB,但大多数访问控件只能显示64000个字符。(如果表单中的文本框包含的字符远远少于64000个,则编辑文本时,该文本框将开始表现出奇怪的行为。)Memo
- VBA可变长度
最多可包含2^31个字符字符串
现在来回答有关QueryDef对象中LongText参数的问题。不幸的是,DAO不支持LongText作为查询的参数类型,即使它允许您在查询设计中创建参数 您有以下解决方案:
- 打开记录集并在其中添加/更新记录
- 对该查询使用ADO命令对象
- 将函数
硬编码到查询的SQL中inhalte(“DefaultInhalt”)
- 或者连接您自己的SQL字符串,包括值(SQL总长度限制为64000个字符!)
inhalte
是一个记录集对象,那么请尝试显式指定.Value
属性,例如inhalte(“DefaultInhalt”).Value
并查看这是否有任何区别。仍然是同样令人难以置信的有用错误消息。我在vba代码中只使用了普通的sql,没有那么干净,但这是时间最不密集的解决方法,而且工作起来没有任何问题。