小编Gor*_*son的帖子

更新Access链接表以使用UNC路径

我有一个Access 2010数据库A.mdb,其中包含一个表列表,其中一个是链接表,从同一服务器上的另一个Access数据库B.mdb链接.这些数据库位于开发计算机上xxx.xxx.xxx.xxx,该计算机映射在我的计算机上R://,然后在yyy.yyy.yyy.yyy服务器上在线发布.

如果我想在本地处理数据库,我需要更改表的链接.但是,如果我通过文件系统更改它(使用"链接表管理器"),链接就会变成R://....,当我查看请求这些数据的ASP页面时,它会被破坏,因为路径错误.此外,如果我在本地更改链接,它将无法在在线服务器上工作.

有没有办法"以编程方式"更改链接?也就是说,不使用链接表管理器?

我寻找答案,但我不是那么专家,我只是明白我必须写一个"模块"?"宏"?

ms-access access-vba

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

pymssql:如何在非Windows框上运行时使用Windows身份验证

有没有办法使用Windows身份验证连接到MS SQL Server ,即使没有在Windows框上运行python应用程序

我试图用pymssql做这个,但是这些例子似乎主要假设你在windows上运行.

如果有一种方法可以使用其他库来建立这种连接,请随时提出建议,但我确实喜欢pymssql如何通过pip安装和部署.

我想连接到2005/2008数据库,我正在运行Ubuntu 13.04(但如果有所不同,我可以升级到更高版本的Ubuntu)

解:

事实证明,pymssql可以通过我的Windows用户名和密码连接到我的数据库.但要这样做,我需要传递实际的用户名/密码,如下所示:

pymssql.connect(host, 'THEDOMAIN\\theusername', 'thepassword', db)
Run Code Online (Sandbox Code Playgroud)

EkoostikMartin提供的解决方案仍然很好(如果你不想在某个地方存储密码,这可能是windows auth的意思)

python sql-server pymssql

8
推荐指数
1
解决办法
7279
查看次数

使用SQLAlchemy从Pandas Dataframe创建Python MS Access数据库表

我正在尝试从Python创建一个MS Access数据库,并想知道是否可以直接从pandas数据帧创建一个表.我知道,我可以用熊猫dataframe.to_sql()功能的数据帧成功地写入到SQLite数据库或通过使用SQLAlchemy的发动机为其他数据库格式(但不是不幸访问),但我不能让所有的件件走到一起.这是我一直在测试的代码片段:

import pandas as pd
import sqlalchemy
import pypyodbc     # Used to actually create the .mdb file
import pyodbc

# Connection function to use for sqlalchemy
def Connection():
    MDB = 'C:\\database.mdb'
    DRV = '{Microsoft Access Driver (*.mdb)}'
    connection_string = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=%s' % MDB
    return pyodbc.connect('DRIVER={};DBQ={}'.format(DRV,MDB))


# Try to connect to the database
try:
    Conn = Connection()
# If it fails because its not been created yet, create it and connect to it
except:
    pypyodbc.win_create_mdb(MDB)
    Conn …
Run Code Online (Sandbox Code Playgroud)

python ms-access sqlalchemy pyodbc pypyodbc

8
推荐指数
1
解决办法
9786
查看次数

SQLAlchemy 错误:尝试完成事务失败。没有找到对应的交易

我已经安装了:

  • 乌班图 (18.04)
  • Python (3.6.8)
  • msodbcsql17(适用于 SQL Server 的 Microsoft ODBC 驱动程序 17)
  • SQLAlchemy (1.3.5)
  • 熊猫 (0.24.2)

我只想使用 SQLAlchemy 和 Azure SQL 数据仓库创建一个概念证明。但是,当我尝试使用以下代码对映射到客户视图表的客户模型运行查询时:

import urllib

from sqlalchemy import create_engine
from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

db_username = 'username'
db_password = 'password'
db_database = 'dbname'
db_hostname = 'dbhost'
db_driver = 'ODBC Driver 17 for SQL Server'
db_port = '1433'

db_connectionString = f"DRIVER={{{db_driver}}}; SERVER={{{db_hostname}}}; DATABASE={{{db_database}}}; UID={{{db_username}}}; PWD={{{db_password}}}; PORT={{{db_port}}};"

engine_params = urllib.parse.quote_plus(db_connectionString)

engine = create_engine(f"mssql+pyodbc:///?odbc_connect={engine_params}", echo=True) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pyodbc msodbcsql17 azure-synapse

8
推荐指数
1
解决办法
7226
查看次数

如何导出Access 2010数据宏

我需要将Access数据宏从我的测试数据库传输到我的生产数据库.有谁知道怎么做?

我知道将表从一个accdb转移到另一个accdb也会传输数据宏,但在我的情况下这不是一个选项.我也知道我可以在生产accdb中手动重新创建它们,但这使我容易出错,并且需要将生产数据库关闭的时间比脚本传输方案要长.

如果我不得不这样做一次就不会那么大,但我需要在开发项目的过程中多次这样做.

我已经尝试将表导出到xml,但不包括数据宏.

请注意,我在这里询问Access 2010 数据宏,而不是常规的Access宏.

macros ms-access ms-access-2010 ms-access-data-macro

7
推荐指数
3
解决办法
7823
查看次数

将相关行的值合并为单个串联字符串值

我正在尝试聚合一些教师数据(以便轻松地显示教师在一个学期中教授的课程),直到现在我才接受为每位教师提供多行.但是,如果我可以将教师的所有教学都放在一行中,那么对某些业务流程会有好处.这是一些示例数据(我的表有更多列,但总体思路不会有太大变化.

tbl_Instructors有:

    N_ID | F_Name | L_Name
    001    Joe      Smith
    002    Henry    Fonda
    003    Lou      Reed
Run Code Online (Sandbox Code Playgroud)

tbl_Courses有:

    Course_ID | N_ID | Course_Info
    AAA         001    PHYS 1
    AAB         001    PHYS 2
    CCC         002    PHYS 12
    DDD         003    PHYS 121
    FFF         003    PHYS 224
Run Code Online (Sandbox Code Playgroud)

我想要回归的是:

    N_ID | First_Name | Last_Name | Course_IDs
    001    Joe          Smith       AAA, AAB
    002    Henry        Fonda       CCC
    003    Lou          Reed        DDD, FFF
Run Code Online (Sandbox Code Playgroud)

我想我需要做一些事情,从tbl_Instructors中选择所有N_ID,然后通过连接从tbl_Courses返回Course_IDs,但这个神奇的步骤已经提到了我.有帮助吗?我可以通过SQL选择执行此操作还是需要使用VB?

ms-access

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

比较object.Value = Null不会产生预期的结果

所以我有一个令人沮丧的简单问题,我似乎无法解决.

If Me.Bank_Credit.Value = Null Then
Me.Bank_Credit.Value = 0
End If
Run Code Online (Sandbox Code Playgroud)

基本上,我有一个未绑定的框,用户输入数据然后点击按钮.确认框上的"是"后,未绑定框上的数据将复制到绑定框中.但是,如果用户没有输入任何内容,那么反过来会创建一个空的绑定字段,这会严重搞砸了路上的查询.

话虽这么说,上面的代码根本不适用于我.例如,如果我设置了如果Me.Bank_Credit.Value = 1然后运行它,则1s变为2s,应该发生.但它只是拒绝为Null甚至""工作.

我很确定这个问题有一个简单的解决方案,我只是想不出来.

提前致谢

ms-access vba

7
推荐指数
1
解决办法
509
查看次数

如何使用Access 2013将ADP转换为ACCDB?

Access 2013不支持ADP.给出了ADP的一些替代方案:

  • 将ADP转换为链接的Access桌面数据库.
  • 将对象导入ACCDE文件,然后使用早期版本的Access创建现有数据的链接表.

我的ADP仅包含表单,报表,宏和模块.我想在Access 2013中使用此ADP(不在任何早期版本的Access上).

我还没有找到任何方法将ADP转换为链接的Access桌面数据库或将对象导入Access 2013上的ACCDE文件.

如何使用Access 2013将ADP转换为链接的Access桌面数据库或将对象导入ACCDE文件?

adp ms-access-2013

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

SQL Server临时表在pyodbc代码中不可用

我在python中运行了一系列复杂的sql查询,它涉及临时表.我的自动提交方法似乎无法从临时表中检索数据.我在下面使用的代码片段,这是我得到的输出:

testQuery="""
    Select top 10 *
    INTO #Temp1
    FROM Table1 t1
    JOIN Table2 t2
    on t1.key=t2.key
"""
    cnxn=pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=DB;UID=UID;PWD=PWD')
    cnxn.autocommit=True
    cursor=cnxn.cursor()
    cursor.execute(testQuery)
    cursor.execute("""Select top 10 * from #Temp1""")
    <pyodbc.Cursor at 0x8f78930>


cnxn=pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=DB;UID=UID;PWD=PWD')
cnxn.autocommit=True
cursor=cnxn.cursor()
cursor.execute(testQuery)
cursor.execute("""Select top 10 * from #Temp1""")
Run Code Online (Sandbox Code Playgroud)

python sql sql-server database-connection pyodbc

7
推荐指数
1
解决办法
5102
查看次数

LocalDateTime 和 SQL Server JDBC 4.2 驱动程序

我正在尝试在java.time最新版本的 Sql Server JDBC 驱动程序中使用新类。正如我所读到的,它应该只适用于方法:PreparedStatement.setObject()ResultSet.getObject()

所以我创建了示例代码,但不能让它与 ResultSets 一起工作。我不知道我在这里做错了什么。

Connection connection = DriverManager.getConnection(connectionString);
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM myTable WHERE ? BETWEEN date_from AND date_to");
preparedStatement.setObject(1, LocalDateTime.now());   // That works

ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
    Object o = resultSet.getObject("date_from"); 
    o.getClass() returns java.sql.Timestamp

    LocalDateTime dateTime = resultSet.getObject("date_from", LocalDateTime.class);
}
Run Code Online (Sandbox Code Playgroud)

这会引发异常:

com.microsoft.sqlserver.jdbc.SQLServerException:不支持转换为类 java.time.LocalDateTime。

驱动版本:mssql-jdbc-6.5.4.jre8-preview.jar

SQL Server 版本:2016


https://docs.microsoft.com/en-us/sql/connect/jdbc/jdbc-4-2-compliance-for-the-jdbc-driver?view=sql-server-2017

如何解释底部表格中的这句话:

Java 8 中的新 Java 类:LocalDate/LocalTime/LocalDateTime、OffsetTime/OffsetDateTime

新的 JDBC 类型:TIME_WITH_TIMEZONE、TIMESTAMP_WITH_TIMEZONE、REF_CURSOR

REF_CURSOR is not supported in SQL Server. …

java sql-server jdbc mssql-jdbc

7
推荐指数
1
解决办法
4969
查看次数