2026-01
24

就是要用not exists

By xrspook @ 8:30:44 归类于: 烂日记

我知道有一个大表,我也有这个大表其中了一些数据的小表,我需要筛选出除了小表以外的数据,思路非常清晰,但实际上要用Excel里面的SQL实现却好像异常困难。在一些高级数据库里,有特殊的函数实现这个功能,有些用的是except,有些用的是minus,但是Excel里没有。如果可以用except或者是minus,这将意味着可以对大小表全列对比,但是如果用其他方法,只能选取其中一些。刚好我要操作的表有一列刚好是多个列信息的集合,所以用那一列作为标识刚好,但如果我根本没有那一列呢?难道我还得先造一列出来,然后再进行操作吗?无论是用not exists或者not in的方式去进行这种筛选,都只能选取其中的某一列操作。如果是用not in的方式,还得要注意,如果那个小表是空的时候,会导致筛选失效。如果用not exists的方式,则不需要考虑小表是空的情况。

一开始想实现这种功能,我想到的不是这两个,而是用count。先去计算那些有重复项的行,然后针对不同计数结果分别处理。就思路来说很清晰,但就实现来说,很啰嗦。但虽然啰嗦,还是能得出我想要的结果。第一天我用这种计数的方式得到了我想要的结果,但我依然觉得应该有一些更直接一点的方法,于是第2天我就想用not in或者not exists的方式去实现。

not in的方式总算是做到了,但是效率不高,感觉耗时是用计数方式的两倍。in和exists相比,我感觉exists的效率更高,但关键是实际上我使用的是not in和not exist,所以估计还是挺麻烦。虽然就语句来说,不过是多了一个not而已。exists的实现耗费了我不少时间,理论上我的写法没有任何问题,但关键是就会报错。折腾了一个下午都无果。晚上洗澡的时候,我突然想到可能是引用数据简写那里出了状况。在使用not exists子查询的时候。我依然是用经典的a和b简写,但实际上在这个子查询引用的数据里面就曾经出现过a和b。如果某一句查询里面的简写a和b是同一个层次的,没什么问题,但关键是子查询这种操作有递归的感觉,主查询跟子查询不是一个层次。VBA弹出来的报错窗口说某个简写可能指向多个数据。后来我觉得大概是因为之前我就已经有用过a这种简写,层层嵌套之下,exists的子查询不知道我指的到底是哪一层的a。洗完澡以后,我赶紧找文件测试,把主查询的a改为了之前从来没用过的c。果然,not exists子查询通过了!多次测试对比发现not in跟not exists的性能确有区别,not exists会快一点点,但是跟计数相比,好像计数依然是三者之中最快的。从好理解的角度而言,not exists最为复杂,最好理解的我觉得是计数,但是就语句使用的长短而言,not exists和not in最简单的。最后我采用的是not exists的方案,但是not in跟之前计数的方案我都只是把它们注释掉了,没有删除。

如果Excel里面的SQL能与时俱进,我能用一些那些高端的函数,我根本不需要这么大费周折。别人有现成的模块,连个线就能用,但我什么都没有,所以哪怕是一个螺丝,我都得从零开始手搓。

2026-01
7

修电脑

By xrspook @ 8:16:57 归类于: 烂日记

电脑突然点不亮,如果是我,我会怎么办呢?

首先我不会怀疑是自己的显示器或者数据线有问题,因为显示器和数据线突然坏掉的几率不高,哪怕是坏掉也不可能是一刹那之间突然就不行。如果是在开机的时候不行,但上一次还可以,那么我觉得大多数情况之下是主机的问题,哪怕主机的电源灯能点亮,拆开面板发现里面的风扇都在运转。如果是软件系统的问题,理论上显示器不会点不亮,顶多是出现一堆英文。以前的电脑一定会出现一堆英文,因为进入不了windows系统,但windows系统之前的那些是可以的,所以界面就是一堆英文。那堆英文在win7以前的那些系统下是比较常见的,尤其是在win95、win98和XP的时候,但之后那堆英文我感觉出现的概率越来越低,但正是因为后面出现的状况是屏幕直接不能点亮,所以连显示那一堆英文告诉你到底是哪里有问题的路径都没有了。

我还记得一开始使用电脑的时候,哪怕主机没有内置的音箱,但是一旦出错,主板会响,会用各种长短结合的提示音告诉你是什么方面的问题。有可能是内存,也有可能是显卡,也有可能是其他东西。那些提示音有长有短,你只需根据长短多少下,然后查相关资料就知道是哪里的问题,但我觉得后来基本上机子都不响了,是直接没有了那个设备还是其它原因?还记得大学和大学之前,我和我的同学用的那些主机过上一段时间就会莫名其妙不能开机,响警报音。绝大多数情况之下响警报音都没什么问题,基本上是内存太脏了,把它拆出来,清理一下金手指,清理一下内存槽,然后再插回去。内存没有坏,只是那个东西太脏了,需要定期清理。再早一点的时候,电脑的电源也不太好,但这也有可能是我家那个时候的电压不太稳,反正各种因素叠加就是我家那台电脑的主机电源经常会挂掉。如果拆开面板发现主机里面的东西完全没反应,无法点亮,短接电源依然无法开机,这就意味着电源坏了,没有任何办法,只能换一个。后来我发现,可能主板CPU内存硬盘光驱又或者其他设备的更新换代已经到达了一个瓶颈期,不会再有非常大的更新,所以对电源的需求也没有继续暴涨下去,感觉后来基本上主机的电源不会突然挂掉,不仅仅是我家的那些不会,单位那些组装机、品牌机也不会。

一开始饭堂师傅跟我说他的显示器不能点亮,他直接就在显示器那方面想问题了,但实际上不应该这么处理。他把显示器拿到我那里测试,已经证明了显示器和那根HDMI线没有问题。显然就是他主机的问题,主机有什么问题呢?插上电源发现电源是可以点亮的,CPU显卡以及机箱风扇,还有里面的跑马灯也都是动的,他插上了鼠标,鼠标是亮的,错误的地方是没有插键盘,如果键盘也插上去,插上去了键盘可以点亮,那些大写又或者Num Lock可以控制,就意味着主板CPU也基本没什么问题。什么原因导致显示器无法点亮呢?有两个是不花钱就能纠正的,一个是内存,一个是显卡。内存拔出来,查一下金手指,清理一下内存槽,再插回去。因为他的主板没有显示器输出,所以用的是独立显卡,独立显卡跟内存可能有同样的问题,也是金手指脏了也是那个插槽仓了,所以清理这两个东西,不花钱又绝大多数情况之下都能排除故障。但显然师傅没往这方面想,他考虑的是独显是不是有问题了,独显上面有4个插口,三个DP,一个HDMI,万一HDMI那个口坏掉了呢?但实际上,独显的HDMI插口坏掉的几率我感觉非常低,除非出厂就有问题,如果出厂没有问题,你只是把它静止放在那里使用,要让它突然出问题这实在太难。除非师傅的运气真那么好,但如果他有那么好的运气,估计可以去买彩票了。

别人电脑坏了,想的是找谁去修,我的电脑坏了,我会自己去找原因,当我实在没办法的时候才求助别人,这也只是电话或者微信求助。到真不行的时候,我才会让别人帮我修,但是到了那种程度,基本上已经病入膏肓了,直接放弃以旧换新比较合适。

2026-01
6

显示器无法点亮

By xrspook @ 8:22:54 归类于: 烂日记

2026年的第1个工作日,我选择一大早就把被子晾到3楼的露台,然后把床上用品都洗了,之所以这样是因为我知道接下来几天都是大晴天,还有就是12月我的床上用品没洗过,所以得抓紧这个好机会。因为我感觉2026年的1月晴天不会持续的太久,很快阴雨就会袭来。

一切都在按计划进行,傍晚当我把被子的被套拆掉,扔到洗衣机,正在换新的被套的时候。饭堂的师傅敲响了我的宿舍门。他就住在我对面,只隔了一条走廊。我回来的时候看到他拿了个显示器。他敲我的门是因为他知道我有台式电脑,他想试一下他的显示器,因为他说他的电脑连接显示器,显示器毫无反应。过程很简单,就是HDMI接口连到我的主机上,结果很快就把显示器点亮了,这就意味着他的那条HDMI线没有问题,显示器也没有问题。如果这两个都没有问题,那么估计就是他的主机有问题了。主机有问题,比显示器或者那条HDMI线有问题更麻烦。

我去他那里看一下,的确主机已经亮起来,无论是CPU、机箱还是显卡风扇都在转。估计那是一个专门用来打游戏的主机,所以里面的走马灯五颜六色,但是显示器一点反应都没有。我让他把键盘和鼠标插上,他只插了鼠标,鼠标是有电的。然后我就提了个建议,要不把他的电脑插在我的显示器上看一下有没有反应,结果还是那样,机箱风扇在动,但显示器没反应。

他用的那个显示器的牌子,我从未听过,那个主机一看就知道肯定是个组装机。主板很小,接口让我觉得挺神奇。主板我觉得性能可能不太好,但是那个独显貌似不便宜。他的HDMI线插在独显上,但是主板后方我就没有看到有显示器接口。为什么居然有这样的板子呢?不仅仅是显示器,连无线网卡的接口也没有。为什么要无线网卡呢?我记得他那里是有路由器的。让我觉得很神奇的是,他的那个主机后面板上还有一个绿色和紫色的鼠标键盘插口,在我印象之中只有非常老的机子才有这个东西。可以说如果那个东西还配有这两个接口,估计主板的年纪在10年以上。那个时候我的第一个反应是独显可以拆掉,如果你的主板上有显示器接口的话,直接接到那个地方,但显然他的主板根本没有。没有了独显貌似就没办法操作了,那个独显我之所以觉得比较高级,是因为那玩意有4个接口,三个是DP,一个是HDMI,他怀疑HDMI那个口有问题,但问题是他的显示器只有两个接口,一个是HDMI,另外一个是VGA,所以可以怎么办呢?最简单的方式是找一个有DP接口的显示器试一下。现在主流的显示器HDMI跟DP接口估计都有,而且据说高版本的DP传输效果会更好,所以那些游戏狂人估计连接的都是DP。我让他找一下跟他一起打游戏的那些人,估计他们就有,但他居然跟我说,他都不知道谁在打游戏。以前我记得有人会去他那里打游戏,或者他会去别人那里打游戏,但我不知道为什么他说不知道。

我办公室的电脑就是DP接口,显示器跟主机是用DP线连在一起。那套戴尔的品牌机除了DP以外,还有VGA。机子买回来的时候配了这两条线,但是这套机子是没有HDMI接口。我没有印象单位的其它电脑用DP线,除了我那台机还用DP线以外,虽然科室里还有一个跟我同款的显示器,但是那个之前跟电脑连接的用的是VGA,因为那个主机只支持VGA和HDMI。我没办法让师傅跟我回办公室用我的显示器做测试,因为我的显示器跟我的主机把线预埋得非常到位,要拆出来很困难,但我能不能找到其它DP线呢?几年前除了我那台机以外,科室里面还有两台机用的是DP线,但关键是那两台机都已经退役了。退役的那两条线去哪里了谁也说不清。

我觉得师傅可以做的是在网上随便买一个DP转HDMI的试一下,那个东西不贵,便宜的话买个转接头就好了,如果要效果好一点,买个线可能稳一些。

2025-12
24

wps也沦陷了

By xrspook @ 8:30:41 归类于: 烂日记

office的ADO+SQL跨表查询挂掉已经一周有余。虽然在这期间微软又出了更新,但据说那个更新并没有把这个问题解决掉。就在这周二,有人在论坛上说wps也中招了。之前一直好好的,但突然间就中招了,他并没有说错误代码是什么,是不是跟我们遇到的相同,但可以肯定的是,wps也中招了。office跟wps是两个不一样的东西,所以如果两边都中招的话,就意味着这个bug可能出在windows上,因为绝大多数情况之下,大家都是用windows系统,可能是win10也可能是win11。我用的是win10,所以我用回滚的方式就暂时没有问题了。之所以这样,是因为我没有参加安全延长计划,所以理论上我的win10是不可能再更新的,但win11不一样。谁知道那个wps中招的电脑是不是win11,是不是周一或者周二进行过自动更新。更新那些东西有时候会让你重启,所以你有感觉,但有时候是静默的,所以你根本不知道已经更新了。

就在网友的wps宣告沦陷之前,Office2024批量版也中招了,但是他中招的时间比我们这些当前频道零售版的晚一点点。从他的那个版本号可以看出,他的office已经更新到最新版本,就那个时间来说,跟让我们中招的那个版本差不多,所以我猜测那个版本更新搞倒了一大片的人,无论你是零售版当前频道,beta频道,企业半月更新频道,又或者是批量版。唯一有可能不受影响的是Office2019,因为跟win10一样,理论上那应该已经被微软停止支持,但如果那个Office2019装在win11的系统上,这又变得有点难说。Office2024批量版中招的那个人。他还不知道自己已经更新到最新版本,但从截图我一眼就看出,他没有禁止office更新,同时版本号也预示着他的确已经被自动更新了。office的更新跟windows的更新有些许不一样,因为office除了一些非常大的版本你会有感知以外,其它都是静默更新。

当wps网友宣告他的也沦陷以后论坛的大佬出来了,论坛的大佬测试一番说,最新版本的wps没有问题。wps也是比较神奇的存在,最新版本到底指的是哪个呢?个人版?企业版?专业版?付费版?还有一些针对特殊群体的版本。简单来说就是wps版本的复杂程度我觉得跟微软的office有得一拼。可以肯定的是,office的版本虽然多,但是你还是能在网上找到各种版本的来龙去脉,但是wps能不能查到我不知道。跟office不一样,很多版本的wps还停留在32位。所以到底中招那个人在用什么版本的wps?是32位的还是64位的?是不是针对特殊群体的版本?这都很难说。对普通人来说,哪个版本不中招用哪个版本就完了,但是对一些电脑数控的单位来说,无论是回滚office还是回滚wps,又或者是装另外一些版本的wps都是很困难的。

方法有很多,但是很多时候是人的所谓“安全”限制了我们的想象力。

2025-12
19

经历了3次bug

By xrspook @ 8:41:20 归类于: 烂日记

我大概是从2023年夏天开始用各种方法进行跨表查询的,最后留下来主力是ADO+SQL。在这两年多的时间里,我感觉经历过三次说不准什么毛病的毛病。

第1次是不知道为什么,部分VBA运行不了,但貌似只在我的电脑上不行,在别人的电脑上可以,而我的电脑可能重启一下又可以了。这个现象很奇怪。在我办公室的电脑出现概率比较高,因为用得最多,家里的电脑偶尔也会这样,但无论是哪一款,可能重启一下就好了,但也可能重启也不好,因为这个是偶发性的,当我想他重复出现的时候他不出现,当我不想他出现的时候它就来了,所以很无奈,什么都没做过一段时间它自己又好了。当时我没有去深究这到底是什么原因。因为复现效果不好,也不知道该如何描述,但从后来的情况看来,可能这是因为windows或者office的某个更新引发了某个bug,但那个bug在往后的某次更新里又基本上被修正了回来。

第2次出现状况是在今年的夏天。情况就是一直使用的那些查询文件突然需要很长时间才能完成查询,查询是可以完成的,但是需要的时间比正常情况之下多很多。那个时间就比较神奇,是12秒的倍数,这个12秒不同的电脑可能不一样,我办公室的那台电脑是12秒,我家里的那台电脑可能不是12秒,可能需要更长的时间,因为家里那台电脑的cpu性能差一点。为什么会这样呢?这一次我是有研究过的,也在论坛上跟网友们分享过,他们也给出了临时的替代方案。临时的替代方案也不是不行,反正我就一直用那个替代方案,顶多是一开始的时候很麻烦,得把数据源挪出查询文件。微软到底是花了多少时间才修复那个bug我不知道,因为我已经按照替代方案的指引把我的文件都整理了一遍。以至于那个bug根本没办法继续伤害我,但某一次我又闲着,打开测试文件的时候发现那个bug没了,微软不知道什么时候修复了。

接下来就是这一次。这个bug和上一个bug我感觉有点类似,起码我用同样的测试文件就可以把它们都揪出来。上一次网友还可以给出提供替代方案。在不改变office版本的前提下,依然能让查询正常的运行,但这一次,简直就是个未解之谜,而且是封杀掉所有跨表查询。所以这一次好像唯一的做法就是暂时回滚,但回滚了以后,我怎么知道微软什么时候修复了那个bug呢?难道我还要在电脑里装个虚拟机,虚拟机那里用最新的版本?我没办法跟他们耗,首先是因为不能跨票查询就直接把我搞死了,其次是这件事情发生在年末,我没有时间耗。跟Excel打交道的人,年底的数据是最让人疯狂的。所以大概我就只能寄望于其它使用365或者Office2021售版的人给我继续做测试。当他们使用的当前频道可以正常运行测试文件,那么那个时候大概我就可以把365的禁止更新取消掉了。

为什么2025这种bug会出的这么频繁呢?其实我也不意外,因为不仅仅是office,windows的bug也很多。win11几乎每次更新都会带入幺蛾子,现在的微软已经不是以前可以完全信任的巨硬了。

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress