Access的VBA编辑器中使用的实际编码是什么?我一直在寻找一个具体的答案很久了,但是没有运气。
我以为是UTF-8,但我不太确定。
我的主要问题是,在VBA中编写查询时,有时需要在Access的查询编辑器中对其进行测试。但是,在复制粘贴时,我的本机字符(在我的情况下为希腊语)会丢失,因为它们变得乱码。
我曾尝试在文本编辑器中粘贴并将其另存为不同的编码,但是我永远无法恢复原始字符。
提前致谢。
编辑
让我进一步解释一下:
如您所见,我可以正常地在VBA编辑器中编写希腊字符:

但是,在Access的查询编辑器中复制第一行,我得到以下信息:

简单的文本编辑器也是如此:

因此,我倾向于认为问题出在剪贴板内部,这是由于用于希腊字符的编码所致。我猜它们不是Unicode,因为我确实必须在系统区域设置中更改非Unicode字符。那么如何保存/复制这些字符?用什么编码?
回答
实际上,在复制实际测试字符串时,通过将键盘输入语言切换为希腊语(EL)解决了该问题。
但是,我仍然不确定为什么会这样。如果有人可以对此提供一些见识,我很想听听。
再次感谢
当我尝试在 MS Access 中查看 ODBC 表时,收到错误“十进制值缩放导致数据截断”。我知道返回错误的字段,并且 Access 在查询时能够识别该字段,但我无法查看结果(#Error记录)并且错误不断出现。
我尝试过CDbl()但没有运气。ANz()甚至不允许运行查询。
源数据库是 Oracle,通过适用于 Microsoft Windows x64 的数据库客户端 11g 第 2 版连接。该字段由数据字典定义,Number长度为22。设计视图显示字段 a 的Decimal精度为13,但小数位数为 2。
我猜测 的规模2导致了这个错误。我通过 MS Access 链接该表。无论如何,我是否可以通过访问 Access 和 ODBC 来解决这个问题,或者是否需要在 Oracle 中解决这个问题?
我在 Access 2013 中编写了跟踪器表单,最终用户在其中更新他们的日常任务。我想将该表保持为只读,以便任何人都无法对现有数据进行任何未经授权的更改。
有没有办法在 Access 中做到这一点?
我有一个包含数百个表的 MS Access 文件,我应该在运行时使用 C# 创建这些表。所以我应该生成一个脚本并在 C# 中使用该查询来创建表。MS Access 有没有办法自动生成这个 SQL 脚本?
此致
在我的Visual Basic应用程序中,我有一个我正在使用的访问数据库文件.它显示在解决方案资源管理器窗口中.一切都很好,直到我安装.由于某种原因,数据库文件不与安装一起使用.我想我需要在运行时编辑连接字符串,但我不确定.我之前没有做过这样的事情,我找不到有关它的信息.
如果有人可以将我发送到教程或者在安装应用程序后简要说明如何使用访问数据库.
当我的程序运行时,它会在中创建一个目录
User\App Data\Roaming\CreatedFolder\Resources\DatabaseFile.accdb
Run Code Online (Sandbox Code Playgroud)
那么如何在不了解App Data的完整路径的情况下设置此路径?
我已经使用他们的工具将 MS Access 2010 数据移动到 SQL,现在按 Unicode 过滤在 Access 链接表中不起作用。我看到 SQL 中的链接表列是“nvarchar”,但在 Access 中,“Unicode 压缩”设置为“否”,我无法更改它。
通过我在Ubuntu下运行的Ruby程序,我试图连接到另一台运行Windows的计算机上的Access数据库。我收到错误
'要求':无法加载此类文件-Win32ole(LoadError)
我面临的另一个问题是系统上不存在Access文件,因此在这里我要使用文件所在的系统中的ip addressand port number和user nameand password,以便通过Internet连接可以连接并获取数据。不幸的是,我不知道在下面的代码中可以在哪里指定这些详细信息。
connect_to_access_db.rb
require 'win32ole'
connection = WIN32OLE.new('ADODB.Connection')
connection.Open('Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:\path\filename.accdb')
SQLstatement = "SELECT * FROM TABLE"
recordset = WIN32OLE.new('ADODB.Recordset')
res = recordset.Open(SQLstatement, connection)
p res
Run Code Online (Sandbox Code Playgroud)
如何建立与Access数据库的连接?
我正在使用 pyodbc 从表中读取数值,但它不只是给我“100”,而是给我“(Decimal('100.00'),)”。
有没有办法只获取数字?
我在跑:
cursor.execute("SELECT CurrentBalance as Numeric FROM [AccountsQA].[dbo].[AccountBalance] where AccountId = '2000013' and Currency = 'ZAR'")
Run Code Online (Sandbox Code Playgroud)
如果这个问题已经得到解答,我深表歉意,但我无法找到如何解决这个问题。
我试图获取输出参数以传递到另一个SP中,所以我也创建了一个测试,看看是否可以从中获取字符串,但会引发异常:
java.sql.SQLException:无效状态,ResultSet对象已关闭
如果没有cs.getMoreResults();另一个异常,则抛出:
java.sql.SQLException:输出参数尚未处理。调用getMoreResults()。
如果我确实删除了我的 if (rs.next()) {作品,那么它将起作用。如何获取输出参数并仍然使用我的if rs.next?
protected String doInBackground(String... params) {
if (userid.trim().equals("Developer")|| password.trim().equals("Dev!n_234"))
isSuccess2=true;
z = getString(R.string.login_succes);
if(userid.trim().equals("")|| password.trim().equals(""))
z = getString(R.string.indsæt_rigtigt_bruger);
else {
try {
Connection con = connectionClass.CONN();
if (con == null) {
z = getString(R.string.Forbindelses_fejl) + "L1)";
} else {
String ID;
ID = setingPreferences.getString("companyid", "");
CallableStatement cs = null;
String query = "{ call [system].[usp_validateUserLogin](?,?,?,?,?)} ";
cs = con.prepareCall(query);
cs.setString(1, userid);
cs.setString(2, password);
cs.setString(3, ID);
cs.setBoolean(4, true); …Run Code Online (Sandbox Code Playgroud) 我尝试了许多不同的东西来从Access中提取数据并将其放入一个整洁的数据框中.现在我的代码看起来像这样.
from pandas import DataFrame
import numpy as np
import pyodbc
from sqlalchemy import create_engine
db_file = r'C:\Users\username\file.accdb'
user = 'user'
password = 'pw'
odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;UID=%s;PWD=%s' % (db_file, user, password)
conn = pyodbc.connect(odbc_conn_str)
cur = conn.cursor()
qry = cur.execute("SELECT * FROM table WHERE INST = '796116'")
dataf = DataFrame(qry.fetchall())
print(dataf)
Run Code Online (Sandbox Code Playgroud)
这会将数据放入数据框,但第二行是列表.我需要下面的代码段在4个单独的列中,而不是2个列表.
0 (u'RM257095', u'c1', u'796116')
1 (u'RM257097', u'c2', u'796116')
2 (u'RM257043', u'c3', u'796116')
3 (u'RM257044', u'c4', u'796116')
Run Code Online (Sandbox Code Playgroud)
我使用了像kdb_utils这样的模块,它有一个read_query函数,它从kdb中提取数据并将其分成一个整齐的数据帧.有没有这样的访问或其他方式来拉取数据并巧妙地将其放入数据框?