小编Mar*_*ret的帖子

处理传递给Access VBA函数的错误值

我有一个VBA功能基本上沿着这些方向:

Public Function JoinDateTime(DateTime As String, Time As String) As Date
    Dim dtDate As Date
    dtDate = CDate(Format(DateTime, "dd/mm/yyyy"))
    dtDate = dtDate & " " & Format(Time, "hh:mm")
    JoinDateTime = dtDate
End Function
Run Code Online (Sandbox Code Playgroud)

它将日期和时间粘合在一起,形成日期时间值.(真正的功能背后有更多的逻辑.)

问题是,我想为传递给它的恼人值添加处理.这主要用于空/空值 - 如果DateTime为空,则返回空.如果它是一个返回#Error的文本字符串,那么它不会只是默默地失败似乎是一个好主意.

问题是,我不知道该怎么做.我想过做一个早期的回归,也许就像在函数的开头推迟这个:

If DateTime = Null or DateTime = "" Then 
    JoinDateTime = Null
End If
Run Code Online (Sandbox Code Playgroud)

但它似乎并不认为这是一个返回,仍然执行函数的其余部分.

有没有办法做到这一点?一个更好的方法,理想情况下?

ms-access vba

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

显示每个方面而不是整体的摘要行

我正在尝试做类似于这个问题的事情,但希望在单个块中完成而不是单独缓存值。

我正在创建一个类似于此的图表:

library(tidyverse)

mtcars %>%
  rownames_to_column("carmodel") %>%
  mutate(brand = substr(carmodel, 1, 4)) %>%
  group_by(brand, cyl) %>%
  summarize(avgmpg = mean(mpg)) %>%
  ggplot(aes(x=brand, y = avgmpg)) +
  geom_point() +
  facet_grid(cyl~., scales = "free_y") +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

按字段之一分组,然后根据summarize()结果绘制计算值,使用方面将类似的观察结果放在一起。我想做的是在每个方面添加一条线,显示该方面的观察平均值。我尝试添加geom_hline(aes(yintercept = mean(avgmpg)))到定义中,但它返回整个数据集的平均值,而不是方面中的观察值:

在此处输入图片说明

我所追求的更像是这样。(这里的线条是用图像编辑器绘制的。)

在此处输入图片说明

这可能吗?

r ggplot2

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

SQL中临时表与物理表的比较速度是多少?

我有一个脚本需要临时提取数据以对其执行额外的操作,但是在脚本运行后不需要再存储它.我目前在一系列临时本地表(CREATE TABLE #table)中有相关数据,然后在使用完成时将其删除.我正在考虑切换到物理表,以相同的方式处理(CREATE TABLE表),如果脚本的速度有所提高(或者其他优点,可能?).

...那么,临时表和物理表之间的性能是否存在差异?从我正在阅读的内容来看,临时表只是物理表,只有运行脚本的会话才能查看(减少锁定问题).

编辑:我应该指出,我在谈论物理表与临时表.有很多关于临时表和表变量的信息,例如http://sqlnerd.blogspot.com/2005/09/temp-tables-vs-table-variables.html.

sql t-sql sql-server sql-server-2005

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

使用python解析CSV文件(稍后制作决策树)

首先,完全披露:这是一个 uni 分配,所以我不想收到代码。:)。我更在寻找方法;我对 python陌生,读过一本书但还没有写任何代码。

整个任务是导入 CSV 文件的内容,根据 CSV 文件的内容创建决策树(使用ID3 算法),然后解析第二个 CSV 文件以针对该树运行。有一个很大的(可以理解的)偏好让它能够处理不同的 CSV 文件(我问我们是否被允许对列名进行硬编码,主要是为了消除它的可能性,答案是否定的)。

CSV 文件采用相当标准的格式;标题行用# 标记,然后显示列名,之后的每一行都是一系列简单的值。例子:

# Column1, Column2, Column3, Column4
Value01, Value02, Value03, Value04
Value11, Value12, Value13, Value14
Run Code Online (Sandbox Code Playgroud)

目前,我正在尝试解决第一部分:解析 CSV。要为决策树做出决策,字典结构似乎是最合乎逻辑的;所以我想沿着这些方向做一些事情:

Read in each line, character by character
If the character is not a comma or a space
    Append character to temporary string
If the character is a comma
    Append the temporary string to a list
    Empty string
Once a line has been read
    Create …
Run Code Online (Sandbox Code Playgroud)

python csv decision-tree

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

使用 Excel VBA 更改连接字符串时创建的新数据连接

我有一个工作簿,其中包含由宏更新的数据透视表。不过,在刷新数据之前,连接字符串会发生更改:

With ThisWorkbook.Connections("Data").ODBCConnection
    .Connection = [Redacted]
    .CommandText = "EXEC ExtractCases " & Client
    .BackgroundQuery = False
    .Refresh
End With
Run Code Online (Sandbox Code Playgroud)

这似乎导致数据透视表创建一个新连接(称为 要么ConnectionData1我似乎无法弄清楚它在它们之间进行选择的作用)并将其自身指向该连接。所以我必须添加这样的行:

Sheets("Pivot").PivotTables("Pivot").ChangeConnection ThisWorkbook.Connections("Data")
Sheets("Pivot").PivotTables("Pivot").PivotCache.Refresh
Run Code Online (Sandbox Code Playgroud)

这似乎有效(除非它不起作用),但在工作簿中留下了很多死连接,导致混乱。

我尝试过手动删除Connection连接,但随后它突然Data1无缘无故地自行命名,并且系统感到不安,因为无法Connection删除不存在的连接。

有什么明显的我做错了吗?有没有什么神奇的方法可以解决这个问题,这样它就不会从一开始就产生第二个问题,从而导致这些令人头痛的问题?

注意:我在 Excel 2010 中运行此代码,但工作簿必须在 2003 年之前可打开;然而,我在分发之前删除了 VB 模块,所以 2010 宏的东西很好,只是工作簿中的东西可能会被这个绊倒......

excel vba

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

如何在Oracle包中执行私有过程?

这是我第一次尝试创建一个包,所以我必须错过一些非常明显的东西(我用Google搜索的内容似乎甚至不值得一提).

显然,如果您的包体中有未包含在规范部分中的过程,那么这些过程是私有的.我遇到的问题是,一旦我制作了私有包,我似乎无法弄清楚如何引用这些私有包.并且SQL Developer拒绝向我提供任何比'完成警告'更有用的消息,这没有帮助......

作为一个例子,这是我一直在尝试的不起作用(只是抛出上述编译器错误):

CREATE OR REPLACE PACKAGE BODY testPackage AS

PROCEDURE privateProc; --Forward declaration

PROCEDURE publicProc IS
BEGIN
    EXECUTE privateProc();
END;

PROCEDURE privateProc IS
BEGIN
    DBMS_OUTPUT.PUT_LINE('test');
END;

END testPackage;
Run Code Online (Sandbox Code Playgroud)

我也试过把它称为testPackage.privateProc,但也没有用.

我究竟做错了什么?

oracle plsql

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

是否可以在更新语句中使用相同的表两次?

我正在尝试按以下方式编写查询:

UPDATE Table i2
SET value = 0
WHERE EXISTS (SELECT 1 FROM Table i1 WHERE i2.ID = i1.ID+1)
Run Code Online (Sandbox Code Playgroud)

问题是我得到"i2'附近的语法错误." 我猜这是因为它不喜欢给正在更新的表提供昵称,但如果是这样的话,我该如何引用呢?

sql sql-server sql-update

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

将字符串转换为Access中的日期

我正在Access 2003中的表之间迁移数据.在旧表中,日期以YYYYMMDD格式存储为文本字段.

我想将该字段存储为新表中的日期时间.我已尝试CDate()在我的SQL语句中使用,但它只显示#Error在结果中.

我究竟做错了什么?

sql ms-access

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

如何从聚合查询中排除异常值?

我正在创建一份报告,比较不同单位的总时间和数量.这里简化了我目前正在使用的查询:

SELECT  m.Unit,
        COUNT(*) AS Count,
        SUM(m.TimeInMinutes) AS TotalTime
FROM    main_table m
WHERE   m.unit <> ''
        AND m.TimeInMinutes > 0
GROUP BY m.Unit
HAVING  COUNT(*) > 15
Run Code Online (Sandbox Code Playgroud)

但是,有人告诉我,我需要排除行的时间最高或最低5%的情况,以试图摆脱一些古怪的异常值.(如在应用聚合之前删除行.)

我怎么做?

sql-server

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

来自shapefile的奇异多边形

我正在尝试将shapefile应用于ggmaps地图,但它给了我非常奇怪的结果.有问题的shape文件是"统计局域网"(组类似邮编)shape文件从可用统计澳大利亚统计局这里.

SLA Shapefile在缩放级别4应用

通常情况下,我可能认为这是一个切断边缘点的问题,但即使在缩放级别1我也会遇到它(事实上它看起来更糟): SLA Shapefile在缩放级别1应用

以下是我用于生成上述图表的一些代码:

library(tidyverse)
library(ggmap)
library(rgdal)

slas <- readOGR(dsn="SLA",layer="SLA11aAust")

aus4 <- get_map("Australia",zoom=4)
ggmap(aus4)

ggmap(aus4)+
  geom_polygon(data=slas, aes(x=long,y=lat))

aus1 <- get_map("Australia",zoom=1)
ggmap(aus1)

ggmap(aus1)+
  geom_polygon(data=slas, aes(x=long,y=lat))
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者shapefile是否以某种方式错误配置?

r

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