怎么在Access查询中创建一列从数字1开始递增的列・_・?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在Access查询中创建一列从数字1开始递增的列・_・?相关的知识,希望对你有一定的参考价值。

第一张图是原查询,第二张是目标形式

(1)把那一列写成常量
insert into table1(a,b,c,d)
select
'aaaa' as a,--常量
b,c,d from table2
(2)把列全写一遍,把固定值改掉!
insert into A select a,b,‘111’ c from B ;
(3)如果两个表的表结构一致的话,可以直接查询插入
insert into A (select * from B) --前提是A表B表同库,字段一致,这样就把B表所有数据追加写入到了A表里;
如果需要写入固定值,那么就得把两表对应的字段写出来
insert into A (A.field1, A.field2, A.field3, A.field4) values (select B.field1, B.field2, B.field3, '固定值' from B) -- 这里表示将B表field1 2 3的值写入A表,并将'固定值'写入A表的field4列。
参考技术A 我刚试验过了,我这个保管最简单方便。
将这个“查询”从数据表视图,改成“设计视图”。然后在设计视图界面,上部工具栏中依次找到,查询工具-设计-汇总(点击选中,会变灰色),再在设计视图界面,下面数据区的新增一列内容那里直接输入下面这个函数表达式就可以了。不过记得在总计那一行中要填内容,或者选Expression。
顺序编号: DCount("[序号]","你这个查询的名称","[连接物]<= '" & [连接物] & "' And [序号]=" & [序号])+DCount("[序号]","你这个查询的名称","[序号]<" & [序号])

在excel中创建一周的第1天,第2天或第3天的日期

我需要确定给定数字的星期几,

例如我有年= 2018日历周= 51和数字= 3(这是一周的第3天)

日历周51在12月份下降

周从周一到周日开始

由于第51周的第3天是19日,结果应该是“19/12/2018”。

我们可以做excel公式或VBA宏。

在这方面的任何帮助深表赞赏。

谢谢,Ganesh

答案

here公然复制你可以使用Excel公式:

=DATE(<YearNumber>, 1, -2) - WEEKDAY(DATE(<YearNumber>, 1, 3)) + <WeekNumber> * 7+ <DayNumber> -1   

所以=DATE(2018, 1, -2) - WEEKDAY(DATE(2018, 1, 3)) + 51 * 7 + 3 - 1将于2018年12月19日回归。

另一答案

它是由vba获得的。一个是宏,一个是udf。

Sub getWeekDays()
    Dim vDB, vS(), vR()
    Dim y As Integer, s As Date, e As Date
    Dim i As Integer, k As Integer
    Dim n As Integer
    'y = Year
    y = InputBox("Input year : 2018  ")

    s = DateSerial(y, 1, 0)
    e = DateSerial(y + 1, 1, 0)
    n = e - s
    For i = 1 To n
        d = s + i
        If DatePart("ww", d, vbMonday) = DatePart("ww", d + 1, vbMonday) Then
        Else
            k = k + 1
            ReDim Preserve vR(1 To 2, 1 To k)
            vR(1, k) = DatePart("ww", d, vbMonday) & " Wk"
            If k = 1 Then
                vR(1, k) = DatePart("ww", s + 1, vbMonday) & " Wk"
                vR(2, k) = Format(s + 1, "dd.mm.yyyy") & "~" & Format(d, "dd.mm.yyyy")
            Else
                vR(2, k) = Format(d - 6, "dd.mm.yyyy") & "~" & Format(d, "dd.mm.yyyy")
            End If
        End If
    Next i
    Range("a1").CurrentRegion.Clear
    Range("a1").Resize(k, 2) = WorksheetFunction.Transpose(vR)
End Sub

UDF

Function getWeekDay(y As Integer, WeekNum As Integer, DayOrder As Integer)
    Dim s As Date, e As Date
    Dim i As Integer
    Dim n As Integer
    Application.Volatile
    'WeekNum = 51
    'y = Year
    'DayOrder <~~ If third day  DayOrder = 3

    s = DateSerial(y, 1, 0)
    e = DateSerial(y + 1, 1, 0)
    n = e - s
    For i = 1 To n
        d = s + i

        If DatePart("ww", d, vbMonday) = WeekNum Then
            getWeekDay = d + DayOrder - 1
            Exit Function
        End If
    Next i
End Function

enter image description here

以上是关于怎么在Access查询中创建一列从数字1开始递增的列・_・?的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程 在杨氏数组中查找数字

算法总结:剑指offer(数字查找)

需要在同一个Access表中创建一条记录的副本,然后更新数据

如何在 MS Access 中创建一个查询,允许您汇总每个客户的总成本?

在excel中创建一周的第1天,第2天或第3天的日期

MySQL 自动递增自定义值