小编aSy*_*oad的帖子

如何在数组中搜索字符串

是否有一个简单的(单行)在VBA中搜索数组中的字符串?或者我是否需要遍历每个元素并将其与目标字符串进行比较?

编辑:这是一维数组.我只需要知道如果字符串在数组中的某个位置.

IE:

names(JOHN, BOB, JAMES, PHLLIP)
Run Code Online (Sandbox Code Playgroud)

我怎么知道阵列中是否有"JOHN",它需要是最小的,因为它将重复约5000次,我不希望该功能减慢整个过程.

arrays vba

38
推荐指数
6
解决办法
16万
查看次数

编辑Access/SQL中的记录问题(写冲突)

我使用的SQL DB迁移到新服务器后出现问题.现在,当尝试在Access(表单或表格)中编辑记录时,它说:WRITE CONFLICT: This record has been changed by another user since you started editing it...

有没有明显的原因.没有人使用服务器,我已禁用表上的任何触发器.我刚刚发现它与NULL有关,因为没有的记录没有,但是有些NULL的行不是.可能与索引有关吗?如果它是相关的,我最近开始每天上传BULK,而不是一次使用来自Access的INSERT INTO.

sql sql-server ms-access sql-server-2008

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

如何在SQL Server中的日期列中查找平均值

我有一个包含5000个记录和日期列的表.

我如何找到这些日期的平均值.我试过了AVG(datefield),但它说Operand data type datetime is invalid for avg operator

sql sql-server

14
推荐指数
3
解决办法
4万
查看次数

如何从SQL Server存储过程返回值并在Access VBA中使用它们

我在SQL Server中设置了一个可以正常工作的存储过程.我现在可以从VBA调用它,但想要返回一个值来知道是否有任何错误等.我的SP中的最后一个参数设置为OUTPUT:

@DataSetID int = 0,
@Destination char(1)='-',
@errStatusOK bit OUTPUT
Run Code Online (Sandbox Code Playgroud)

我的VBA调用SP是在下面,但它现在不起作用,添加新参数后我不知道我哪里出错了,我一直得到3708 - Parameter object is improperly defined. Inconsistent or incomplete information was provided.:

Set cnn = New adodb.Connection
cnn.ConnectionString = 
   "DRIVER=SQL Server;SERVER=SERVER\SERVER;DATABASE=a_db;Trusted_Connection=Yes"

cnn.Open cnn.ConnectionString

Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"

Set param = cmd.CreateParameter
               ("@DataSetID", adInteger, adParamInput, , stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
               ("@Destination", adChar, adParamInput, 1, stDestination)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
               ("@errStatusOK", adBit, adParamReturnValue) …
Run Code Online (Sandbox Code Playgroud)

sql-server vba stored-procedures access-vba sql-server-2008

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

使用范围,如何将.COPY DESTINATION粘贴为VALUES

我有以下代码,可以很好地将整个单元格复制到新目的地.

Dim ws As Worksheet, rng As Range

Set ws = Sheets("Duplicates")
Set rng = ws.Range("A2")

rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row)
Run Code Online (Sandbox Code Playgroud)
  1. 有可能做到这一点paste special.
  2. 或者我是否需要使用两个范围对象将复制/粘贴分成两行?

编辑:

是的,我们得出的结论是,您不能在与副本相同的行上使用特殊粘贴.我还发现,你可能不希望这样.

如果从记录1复制公式并将其粘贴到所有记录中VALUES,您将获得复制的第一个记录的公式值.

这不是我想要的.因此,您必须将公式作为公式复制到所有记录,然后复制这些公式并粘贴为值.


Dim ws As Worksheet, rng As Range
Set ws = Sheets("Duplicates")
Run Code Online (Sandbox Code Playgroud)

设置第一个范围(带公式的单个单元格),然后根据Col将内容复制/粘贴到电子表格的底部G:

Set rng = ws.Range("A2")
rng.Copy Destination:=Range("A2:A" & Range("G" & Rows.Count).End(xlUp).Row)
Run Code Online (Sandbox Code Playgroud)

从第二行向下选择新粘贴的formule.复制它们.然后将内容作为值粘贴到同一位置.

Set rng = ws.Range("A3:A" & Range("G" & Rows.Count).End(xlUp).Row)
rng.Copy
rng.PasteSpecial (xlPasteValues)
Application.CutCopyMode = False 
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2010

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

如何在DIV中添加html5 CANVAS

我正在使用以下代码生成一个canvas.目前它将canvas元素添加到body,我如何才能将它添加到div命名的"divGameStage",它不嵌套在任何其他元素中,除了body.

编辑:我已经尝试了第一个建议,但没有出现画布,完整代码如下:

<head>
<meta charset="utf-8">
<title>Game Stage</title>
<script type="text/javascript">
    function loadCanvas(id) {
        var canvas = document.createElement('canvas');
        div = document.getElementByID(id); 
        canvas.id     = "CursorLayer";
        canvas.width  = 1224;
        canvas.height = 768;
        canvas.style.zIndex   = 8;
        canvas.style.position = "absolute";
        canvas.style.border   = "1px solid";
        div.appendChild(canvas)
    }
        </script>
</head>
<body>
<header>
    <h1>The most important heading on this page</h1>
    <p>With some supplementary information</p>
</header>
<div id="divControls"></div>
<div id="divGameStage"></div>
<script type="text/javascript">
    loadCanvas(divGameStage);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript html5 canvas

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

如何在VBA中创建数据透视表

我正在尝试创建一个Pivot表,但得到了Invalid Procedure Call or Argument.

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="rng", Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:="rngB", TableName:="pvtReportA_B", DefaultVersion:=xlPivotTableVersion14
Run Code Online (Sandbox Code Playgroud)
  • rng (源)是由大约20列和几千行组成的范围.
  • rngB (目标)是不同工作表中的单个单元格

谁能告诉我哪里出错?

编辑:

我的错,我本来应该使用rngData而不是rng作为来源.

    Set rng = wsA.Range("C14")
    Set rngData = Range(rng, rng.End(xlToRight))
    Set rngData = Range(rng, rng.End(xlDown))
    Set rngB = wsB.Range("C8")

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngData, Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:=rngB, TableName:="pvtReportA_B", DefaultVersion:=xlPivotTableVersion14
Run Code Online (Sandbox Code Playgroud)

这使得数据透视表框架很好.

excel vba excel-vba excel-2010

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

如何在不触发UPDATE触发器的情况下“更新” SQL Server表

我有一个更新触发器,可以更新表中的一些重要状态字段tblCurrent
当我第一次将每日一批记录上载到tblCurrent(大约10K条记录)时,我会通过三个单独的存储过程执行一些UPDATE,而这些过程是在第一次上载时才执行的。如何防止在这三个初始UPDATE期间运行更新触发器?

sql sql-server triggers

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

如何在使用vba创建表时指定主键

我已经使用下面给出的建议更新了代码,我已经测试并且工作得很好,以便为将来的用户提供快速参考.


我正在使用以下代码创建链接表而无需为每个用户设置DSN,如何指定主键,因为如果手动连接则会询问您:

Dim sConnect    As String
Dim db          As DAO.Database
Dim tdf         As DAO.TableDef

Set db = CurrentDb

Set tdf = db.CreateTableDef
tdf.Name = "dbo_vwFeedback" ' - -- --- This is the Label that you see in Access...
tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=server01\serverinstance;DATABASE=db_name;Trusted_Connection=Yes"
tdf.SourceTableName = "vwFeedback" ' - -- --- This is the actual name in SQL Server, minus the owner.
db.TableDefs.Append tdf
CurrentDb.Execute "CREATE UNIQUE INDEX PK_dbo_vwFeedback_PrimaryKey ON dbo_vwFeedback (DataSetID, FeedbackRef) WITH PRIMARY"
Run Code Online (Sandbox Code Playgroud)

注意:以上是针对SQL Server VIEW,它对于SQL Server TABLE是相同的,但您不需要该CurrentDB.Execute行(如果您的主键在服务器上正确设置). …

sql ms-access recordset access-vba

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

如何在MS Access VBA中检索屏幕大小/分辨率以重新调整表单大小

我有两个弹出窗体(父/子),我希望能够根据屏幕的大小自动重新调整大小.

如何检索屏幕大小以实现此目的.

forms ms-access vba

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