小编Tho*_*s G的帖子

ADO Recordset数据未在表单中显示

我在MS Access 2010上遇到了令人沮丧的问题,我现在在这个问题上有资格作为一个bug.在尝试了所有可能的解决方法之后,我没有想法并且依赖于你.


上下文

巨大的Access Access 2010应用程序,具有25k行VBA和> 50个表单.它有一个客户端服务器体系结构,其前端已编译,网络上有Access后端.它连接到二十几个不同的数据库(Oracle/SQL Server/Sybase IQ).


问题

有时,当我将ADODB记录集分配给子表单时,其数据不会显示在绑定字段中.我#Name?到处都是

数据就在那里.我可以debug.print,我可以在Watches浏览器中看到它,我可以在使用代码循环记录集对象时读取或操作它.它只是没有出现在子表单中.

它可以在几个月内完美地工作,突然一个表格将开始出现这个问题而没有任何明显的原因(即使在我没有改变的表格上也可能发生).当它发生时,它适用于所有用户,所以这在前端accdb/accde中确实是错误的.

该问题与特定的DBMS /驱动程序无关.Oracle或Sybase数据可能会发生这种情况.

我创建了自己的类,抽象出与ADO连接和查询相关的所有内容,并在各处使用相同的技术.基于它,我有十分之几的表格,而且大多数表现都很完美.

我在我的应用程序的几个部分中遇到了这个问题,特别是在具有大量子表单和代码的高度复杂的表单中.在这个主表单上,一些子表单有问题,而其他子表单没有.它们具有完全相同的参数.


代码

这就是我填充表单记录集的方式:

        Set RST = Nothing
        Set RST = New ADODB.Recordset
        Set RST = Oracle_CON.QueryRS(SQL)

        If Not RST Is Nothing Then
            Set RST.ActiveConnection = Nothing
            Set Form_the_form_name.Recordset = RST
        End If
Run Code Online (Sandbox Code Playgroud)

调用的代码Oracle_CON.QueryRS(SQL)

Public Function QueryRS(ByVal SQL As String, Optional strTitle As String) As ADODB.Recordset

    Dim dbQuery As ADODB.Command
    Dim Output As ADODB.Recordset
    Dim dtTemp As …
Run Code Online (Sandbox Code Playgroud)

sql ms-access vba ado ms-access-2010

9
推荐指数
1
解决办法
1027
查看次数

摆脱昂贵的自加入

我有一个这样的SQL语句

SELECT  
    pa.col1,
    SUM(ps.col2) col2,
    SUM(psl.col2) col2_previous_month
FROM  
    pa
LEFT JOIN 
    ps ON pa.Id = ps.Id AND ps.date = @currDate
LEFT JOIN 
    ps as psl ON psl.Id = ps.Id AND psl.date = dateadd(month, - 1, @currDate)
GROUP BY 
    pa.col1;
Run Code Online (Sandbox Code Playgroud)

此 SQL 经常被调用,并且由于表ps有 100M 行,左连接会造成损害。有没有办法使用 left Join 重写这个?

问候尼克

sql sql-server

5
推荐指数
1
解决办法
695
查看次数

SQL 服务器 ODBC 驱动程序 linux 用户名 ''

我为 linux 版本 13 安装了 Microsoft SQL 服务器 ODBC 驱动程序。

我可以使用用户名密码命令行登录,但不能使用 odbc.ini 中的用户名和密码登录

例子

curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo                                                                                                                                                                                                     yum install msodbcsql mssql-tools

[root@server01 etc]# cat odbc.ini

[MY_ODBC_DSN]

Driver = ODBC Driver 13 for SQL Server

Server = tcp:10.10.10.1,1433

Database = demo

UID = user1

PWD = password
Run Code Online (Sandbox Code Playgroud)

有效

isql -v MY_ODBC_DSN user1 password
Run Code Online (Sandbox Code Playgroud)

不工作

isql -v MY_ODBC_DSN

[28000][unixODBC][Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user ''.
[ISQL]ERROR: Could not SQLConnect
Run Code Online (Sandbox Code Playgroud)

linux sql-server odbc driver

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

Excel VBA - 将日期字符串转换为日期

我在单元格中有许多字符串,这些字符串是日期,但它们需要转换为日期格式.

它们采用以下格式:

mmm dd, yyyy
Run Code Online (Sandbox Code Playgroud)

例如:

Feb 10, 2016
Run Code Online (Sandbox Code Playgroud)

所以它们的长度可以是11或12:

Feb 1, 2016
Run Code Online (Sandbox Code Playgroud)

我已经开始编写一个函数来单独解析字符串的每个部分(日为整数,月为整数,年为整数)然后转换为日期格式.

首先,有一种比上面更容易/更光滑的方法吗?

如果没有更简单的方法,最好的方法是将3个字母的月份(例如2月或3月或4月)转换为月份数字(例如2或3或4)?因为这是我真正坚持的唯一一点.

excel vba excel-vba

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

如何使用谷歌驱动器中的 <iframe> 在嵌入式视频中停止“弹出”

使用 Google Drive,您可以在您的网站中嵌入带有以下标签的视频:

<**iframe src="https://drive.google.com**/file/d/LINKTOMYFILE/preview"  width="640" height="480" frameborder="0" scrolling="no" seamless></iframe> 
Run Code Online (Sandbox Code Playgroud)

右上角有一个灰色框。这会将您带到下载/嵌入 GoogleDrive 页面。我想阻止它。

有人知道怎么隐藏吗?

或者至少如何用海关 CSS掩盖它

这是我通过检查 div 中的元素得到的:

<**iframe src="https://drive.google.com**/file/d/LINKTOMYFILE/preview"  width="640" height="480" frameborder="0" scrolling="no" seamless></iframe> 
Run Code Online (Sandbox Code Playgroud)

css embed video iframe

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

标签 统计

sql ×2

sql-server ×2

vba ×2

ado ×1

css ×1

driver ×1

embed ×1

excel ×1

excel-vba ×1

iframe ×1

linux ×1

ms-access ×1

ms-access-2010 ×1

odbc ×1

video ×1