由于各种原因,我陷入了Access 97并且只需要获取完整路径名的路径部分.
例如,名称
c:\whatever dir\another dir\stuff.mdb
Run Code Online (Sandbox Code Playgroud)
应该成为
c:\whatever dir\another dir\
Run Code Online (Sandbox Code Playgroud)
该网站提供了一些有关如何操作的建议:http: //www.ammara.com/access_image_faq/parse_path_filename.html
但它们看起来相当可怕.必须有更好的方法,对吧?
我目前正在为Access 97进行SQL查询.给出以下表格(为演示目的而简化),每个表都位于不同的mdb文件中:
C:\ db\db1.mdb中的Table1:
PartyId (PK) Name
------------ --------
1 A
2 B
3 C
Run Code Online (Sandbox Code Playgroud)
C:\ db\db2.mdb中的表2:
PartyId (PK) Date (PK) Value
------------ --------- -----
1 6/30/2014 4
1 7/1/2014 8
2 5/3/2014 3
3 5/5/2014 5
3 5/3/2014 1
3 5/2/2014 2
Run Code Online (Sandbox Code Playgroud)
在这里,我想根据定义的日期查找每一方的最新价值.所以,比方说,我将7/5/2014标记为目标日期,然后我的查询应返回以下内容:
PartyId Name Date Value
------- ---- -------- -----
1 A 7/1/2014 8
2 B 5/3/2014 3
3 C 5/5/2014 5
Run Code Online (Sandbox Code Playgroud)
我在C:\ db\db1.mdb数据库中创建了以下查询:
SELECT T.TPartyId, Name, T.TDate, T.TValue
FROM Table1 INNER JOIN [
SELECT Table2.PartyId AS TPartyId, …Run Code Online (Sandbox Code Playgroud) 我有一个Access 97数据库,我试图获取数据模式和数据.我不知道有多少表,或者它们被称为什么,也不知道有哪些列名.
以编程方式进入数据库没有问题,但是如何发现模式呢?
我正在使用它来获取架构表:
static DataTable GetSchemaTable(string connectionString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
DataTable schemaTable =
connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
return schemaTable;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个消息对话框,提示用户指向将由程序分析的TXT文件.
如何在VBA 97中创建此文件资源管理器提示符?
应该在某个地方有一个'openfile'功能,但我找不到它.此外,对象应用程序的描述似乎没有提及有关文件提示的任何内容.我注意到在较新的版本中有一个名为OpenFileDialog的类和另一个名为FileDialog的类似乎可以解决这个问题,但是,它似乎在Access 97中不可用
我需要从加密的Access 97数据库中读取数据并尝试使用Jackcess和UCanAccess.
我正在使用来自bouncycastle.org的jackcess-2.1.2.jar,jackcess-encrypt-2.1.0和bcprov-jdk15on-152.jar
由于UCanAccess在内部使用Jackcess,我在其他所有尝试中都遇到了同样的错误.
import com.healthmarketscience.jackcess.CryptCodecProvider;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import java.io.File;
File fi = new File("test/access/data.mdb");
CryptCodecProvider cryptProvider = new CryptCodecProvider();
cryptProvider.setPassword("mypassword");
DatabaseBuilder dbb = new DatabaseBuilder(fi);
dbb.setFileFormat(Database.FileFormat.V1997);
dbb.setAutoSync(false);
dbb.setCodecProvider(cryptProvider);
dbb.setReadOnly(true);
Database dbc = dbb.open();
Run Code Online (Sandbox Code Playgroud)
最后一行调用错误,这里是堆栈跟踪:
Exception in thread "main" java.lang.NoSuchMethodError: org.bouncycastle.crypto.StreamCipher.processBytes([BII[BI)V
at com.healthmarketscience.jackcess.impl.BaseCryptCodecHandler.streamDecrypt(BaseCryptCodecHandler.java:91)
at com.healthmarketscience.jackcess.impl.BaseJetCryptCodecHandler.decodePage(BaseJetCryptCodecHandler.java:62)
at com.healthmarketscience.jackcess.impl.PageChannel.readPage(PageChannel.java:224)
at com.healthmarketscience.jackcess.impl.UsageMap.read(UsageMap.java:130)
at com.healthmarketscience.jackcess.impl.PageChannel.initialize(PageChannel.java:117)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.<init>(DatabaseImpl.java:516)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:389)
at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:248)
at ACCESS.ACCESSTest.main(ACCESSTest.java:84)
Run Code Online (Sandbox Code Playgroud) ms-access-97 ×5
ms-access ×3
vba ×2
access-vba ×1
c# ×1
encryption ×1
excel ×1
excel-vba ×1
jackcess ×1
java ×1
jet ×1
sql ×1
ucanaccess ×1