网志6周年

IMG_1430

网志6周年啦,不容易啊。

翻看往年写的周年日志,大体都是觉得日子过得有点儿混、懒惰。不够正面啊。

不过今年情况要好多了,虽然上半年有那么几个月有点不知道在忙啥的感觉,但是总体来说,还是过得挺充实的,在按计划推进。不管怎么说,今年必须出成果,这是明确目标(现在已经有初步成果了),年底要做个好看的成果展示。

今年没怎么跑了,只是在周末练一小段儿,省下了很多时间。不过听说11月广州要办马拉松,虽然到现在还没有官方消息,不过还是从这个高温假开始恢复训练。现在的体能真是糟透了,练得好痛苦。要是再过一个月没有比赛的公告,那就果断停练。恶魔

Advertisements

一鼓作气搞懂ACCESS,出成果!

看来是低估了ACCESS数据库的难度了。再怎么它都是一个数据库,而不是Excel表,而我对数据库相关知识的记忆已经几乎清零了,得从头学。

现在正在看表关系、主键之类的基础知识,看了一些例子之后,发现之前从Excel转过来的管理表设计思路基本是错的,要大改。

这段时间要冲刺啦,顺便接着高温假长假把这个系统和业务流程搞出来,要出成果!

将某一表中的一个字段拖到另一表中的相应字段。

非常不智能的EXCEL引用ACCESS相对路径问题

本想完美解决EXCEL引用ACCESS数据库时的相对/绝对路径问题,结果花了一番功夫才发现并没有完美的解决方案。现在找到的方案是需要使用VB,且不能直接使用,需要根据引用数据的文件名修改一处代码,真不爽……

Private Sub Workbook_Open()
    Dim strCon As String, iPath As String, i As Integer, iFlag As String, iStr As String
    ‘定义变量
    On Error Resume Next
    strCon = ActiveSheet.QueryTables(1).Connection
    ‘将当前活动数据透视表中缓存连接信息赋值给变量strCon
    Select Case Left(strCon, 5)  ‘select case语句,条件为strCon变量中从左侧取5个字符
    Case "ODBC;"                 ‘用于判断缓存连接信息中的数据连接方式,如果是ODBC方式
        iFlag = "DBQ="           ‘将"DBQ=" 赋值给变量iFlag
    Case "OLEDB"                 ‘用于判断缓存连接信息中的数据连接方式,如果是OLEDB方式
    iFlag = "Source="            ‘将"DBQ=" 赋值给变量iFlag
    Case Else
        Exit Sub
    End Select
‘    iFlag = "第一次"
    iStr = Split(Split(strCon, iFlag)(1), "第一次")(0)  ‘在变量strCon中截取文件路径信息
    iPath = ThisWorkbook.Path                ‘获取当前活动工作簿的完全路径
    With ActiveSheet.QueryTables(1)     ‘替换数据透视表中缓存信息中的文件完全路径
        .Connection = VBA.Replace(strCon, iStr, iPath)
        .CommandText = VBA.Replace(.CommandText, iStr, iPath)
    End With

End Sub

加了底色的就是那该死的代码,EXCEL和ACCESS这两个发展了这么多年的软件,居然在引用数据上还搞得这么不智能,真是郁闷。我自己用都嫌烦,何况教给我不大懂电脑的同事呢。