我正在尝试使用 python 2.7 在目录中查找一系列特定文件。我的目录中有许多文件,其名称类似于 AB_yyyyjjjhhmmss_001.txt,其中 y 是年份,j 是儒略日期,h 是小时等等。每个时间对应于获取某些数据的时间,而不一定是创建或操作文件的时间。我喜欢选择一个时间范围,比如从 2013305010000 到 2013306123000 并处理它们。
我有类似的东西,
import glob
def get_time (start_time = None, end_time = None):
if start_time == None:
start_time = input("start: ")
if end_time == None:
end_time = input("end: ")
duration = str(start_time) + "-" + str(end_time)
listing = glob.glob("*_[" + duration + "]_*")
Run Code Online (Sandbox Code Playgroud)
我了解到这[ ]只是为了匹配单个数字。所以我在这里完全偏离了轨道。我也尝试过{start_time..end_time}组合,但没有效果。
我试图通过按钮进行查询; 虽然它在JOIN操作中显示语法错误.当我点击它...我找不到语法错误,也许你们可以帮助我吗?这是代码:
Set qdef = CurrentDb.CreateQueryDef("UnitMoreInfoQ", _
"SELECT UnitsT.*, WorkOrdersQ.CustomerName, WorkOrdersQ.ClientName, WorkOrdersQ.WorkOrderNumber " & _
"FROM UnitsT inner join workordersQ on WorkOrdersT.WorkOrerID=WorkOrdersQ.WorkOrderID " & _
"WHERE UnitsT.UnitID = " & txtWorkOrderID.Value)
Run Code Online (Sandbox Code Playgroud) rst.Open "SELECT * FROM Equipas WHERE ([ID - Funcionário] LIKE '" & idfunc & "' AND [ID - Tarefa] LIKE ' " & idtask & "' );", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
rst.Delete adAffectCurrent
rst.Update
rst.Close
Run Code Online (Sandbox Code Playgroud)
我收到运行时错误3021,但查询不为空.
假设我们有以下2个表格:
CREATE TABLE tblProduct
(`Product_ID` int, `Product_Name` varchar(7));
Run Code Online (Sandbox Code Playgroud)
和
CREATE TABLE tblProductExtended
(`Product_ID` int, `Product_Size` int, `Product_Quantity` int);
Run Code Online (Sandbox Code Playgroud)
有了这些价值观:
INSERT INTO tblProduct
(`Product_ID`, `Product_Name`)
VALUES
(1, 'Shoes1'),
(2, 'Shoes2');
Run Code Online (Sandbox Code Playgroud)
和
INSERT INTO tblProductExtended
(`Product_ID`, `Product_size`, `Product_Quantity`)
VALUES
(1, 36, 20),
(1, 37, 20),
(1, 38, 30),
(2, 36, 50),
(2, 37, 60),
(2, 37, 75);
Run Code Online (Sandbox Code Playgroud)
现在很明显,tblProductExpanded中的Product_ID应该是tblProduct的Product_ID的FK.但是,我仍然可以查询:
SELECT tblProduct.Product_ID, Product_Name, Product_Size, Product_Quantity
FROM tblProduct
INNER JOIN tblProductExtended ON tblProduct.Product_id = tblProductExtended.Product_id
Run Code Online (Sandbox Code Playgroud)
哪个回报:
Product_ID Product_Name Product_Size Product_Quantity
1 Shoes1 36 20
1 …Run Code Online (Sandbox Code Playgroud) 我试图获得一个按钮,当我单击该按钮时将其从“左箭头”更改为“右箭头”,但是我不确定如何通过VBA分配图像。我试过了Me!btnCollapseUnscheduled.Picture = "Arrow Left",但是这样会收到错误消息。
得到了奇怪的 Access 项目,在哪里找到了这一行:
strUserName = String$(39, 0)
Run Code Online (Sandbox Code Playgroud)
什么String$意思?
编辑:请参阅下面的评论,了解部分解决方案.
编辑2:我找到了一个关闭VBA编辑器的适当解决方案,但只想知道是否有人知道如何让它在整个时间内完全不可见.我发现的东西可以满足我的需求,但我会为任何想要详细说明其他方法或扩展我的方法的人留下这个主题.
原帖:我有一个创建表,查询和表单的函数.对于表单,它复制模板表单并调用一个动态替换表单VBA代码的函数.我创建的下面的函数很有用,但是,如果我没有在编辑器中打开类对象表单,我得到运行时错误'2516':"Microsoft Access无法找到模块'SPCInputFormVBA.',其中SPCInputFormVBA是类对象名称的变量.为了进一步详细说明行为,如果我关闭了编辑器,只要模块或类对象在编辑器中打开,它仍然可以工作.我希望能够激活编辑器中的相应Form_xyz对象没有编辑器打开,这样我就可以使用这个函数来做一堆东西了.我使用的是模板形式,因为嵌入了很多东西并且有很多东西在继续我可以更改记录源和其他各种内容的形式,但到目前为止VBA部分对我来说是难以捉摸的.我认为打开对象很容易,但是我遇到了很多麻烦而无法找到方法描述我的问题导致我找到解决方案.
Public Function InputFormVBA(SPCInputFormVBA)
DoCmd.OpenModule (SPCInputFormVBA)
Dim i As Integer
With Application.Modules(SPCInputFormVBA)
For i = 1 To .CountOfLines
If InStr(.Lines(i, 1), "TempTable") > 0 Then
' .ReplaceLine i, " If DCount( ""serial"", """ & tblName & """, _"
End If
'If Instr(.Lines(i, 1), "
Next i
End With
End Function
Run Code Online (Sandbox Code Playgroud)
我最接近的是尝试使用此功能的各种事情,以帮助我了解Access如何对我在网上找到的不同潜在解决方案做出反应:
Sub PrintOpenModuleNames()
Dim i As Integer
Dim modOpenModules As Modules
Set modOpenModules = Application.Modules
For i = 0 To modOpenModules.Count - 1
Debug.Print modOpenModules(i).Name
'DoCmd.OpenModule (modOpenModules(i).Name) …Run Code Online (Sandbox Code Playgroud) 在Access中的更新操作期间是否可以进行双内连接?
以下代码不适用于我:
UPDATE [TableA]
INNER JOIN [TableB] ON [TableB].Field1= [TableA].Field1,
INNER JOIN [TableC] ON [TableC].Field2 = [TableB].Field2
Set
[TableA].Field3 = 'Test'
where [TableC].Field4 = 0
Run Code Online (Sandbox Code Playgroud) 我正在生成一个数据库系统,需要运行一个查询,其中我的VARCHAR列需要匹配多个值中的任何一个.例如;
SELECT * FROM CompressedTags
WHERE TagValue ISEITHER("FOO","BAR","OTHER")
Run Code Online (Sandbox Code Playgroud)
我知道我可以写这个;
SELECT * FROM CompressedTags
WHERE TagValue="FOO" OR TagValue="BAR" OR TagValue="OTHER"
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有一个漂亮,更整洁的替代品,比如我上面发布的"ISEITHER"功能?请注意,我正在使用MS-Access数据库,OleDbCommand如果可能的话,我更愿意使用它来完成此操作!
ms-access ×8
access-vba ×5
sql ×4
vba ×4
button ×1
c# ×1
database ×1
file-io ×1
glob ×1
image ×1
inner-join ×1
python ×1
python-2.x ×1