Ⅰ access怎麼記錄歷史變動情況
其實Access是一個關系型資料庫,如果想查看在Access中具體每步操作記錄
比如:何時建了一個表,表中各欄位是何類型,又何時將其刪除。何時進行了數據查詢,如何操作等這些具體的記錄,好象在沒有做相關功能開發的話,是沒法進行查看的。除非你做了相關的日誌記錄。
以上是針對你的問題我自己的一點看法,當然如果你僅是查看其中的記錄的話,那當另當別論。Access既然是一個資料庫,那麼對於數據的存儲是不在話下的,對於其中所存的數據的查看那也是非常容易的。
希望我的回答對你有幫助。
Ⅱ access如何依據主表中輸入的某項數據自動生成子表記錄
每次點擊按鈕生成一條記錄比較容易:
我曾經做過這樣的案例:
先加上一句話:
DoCmd.SetWarnings False 『這句話是關閉煩人的提示警告;
DoCmd.RunSQL "INSERT INTO 子表名稱(子表欄位1,子表欄位2,子表欄位3,……) values('Me.當前窗體控制項1','Me.當前窗體控制項2',now(),……);"
注意前後順序要一一對應,注意欄位的類型,如果「子表欄位1」是日期格式,則「Me.當前窗體控制項1」也必須是日期格式。
希望能幫到你。
Ⅲ 如何在ACCESS 窗體中向表中添加記錄
在ACCESS窗體中向表中添加記錄的具體操作步驟如下:
1、首先,使用「查詢設計」新建一個查詢:
Ⅳ access能不能根據別欄位的記錄自動生成新的記錄
用SQL語句就可以了.
Ⅳ access數據怎麼做用戶操作記錄的日誌功能
建立一個通用函數
在這個函數中用於記錄用戶的操作,給日誌表增加記錄,通過函數的參數取得用戶操作信息
再建立一個打開窗體的函數
這個函數中,先調用前面的函數記錄用戶操作信息,再打開 窗體
以後在所有要打開 窗體 的地方,使用方面第二個函數來打開窗體,就會同時記錄用戶操作信息
Ⅵ access如何在打開窗體時自動新建一個記錄。
選中要操作的窗體,右鍵選「設計視圖」,在打開的設計視圖【窗體】屬性中點擊上方的「事件」選項卡,選中【載入】,然後點擊後面的…按鈕,彈出窗口中選擇【宏生成器】或者【代碼生成器】,然後對照下面操作:
方法一、【宏生成器】法:
1、彈出的對話框中先給宏指定一個名稱,比如:添加新記錄
2、在【添加新記錄: 宏】窗口的「操作」處選擇:GoToRecord
然後在下面的「操作參數」處進行如下設置:
1)對象類型:窗體
2)對象名稱:選你要操作的窗體
3)記錄:選「新記錄」
4)保存退出。
方法二、【代碼生成器】法:
在彈出的VB編輯器中滑鼠游標激活處添加如下代碼:
DoCmd.GoToRecord , , acNewRec
然後關閉VB編輯器。
最後:無論採取那個方法,關閉窗體的「設計視圖」時選「保存」即可!
Ⅶ access怎麼看操作記錄
其實Access是一個關系型資料庫,如果想查看在Access中具體每步的操作記錄比如:何時建了一個表,表中各欄位是何類型,又何時將其刪除。何時進行了數據查詢,如何操作等這些具體的記錄,好象在沒有做相關功能開發的話,是沒法進行查看的。除非你做了相關的日誌記錄。
以上是針對你的問題我自己的一點看法,當然如果你僅是查看其中的記錄的話,那當另當別論。Access既然是一個資料庫,那麼對於數據的存儲是不在話下的,對於其中所存的數據的查看那也是非常容易的。如果你的問題是這樣,那麼你可以留言或在線交流。
Ⅷ 在access資料庫中,如何建立查詢所有用戶的最近10個記錄
要使用交叉查詢
首先你表要增加一個欄位,叫「購買序數」,就是購買第一次是1,第二次是2,...
TRANSFORM last(表.交貨數量)
SELECT 表.用戶
FROM 表
where 表.購買序數<=10
GROUP 表.用戶
PIVOT 表.購買序數;
這個查詢是:
1:查處所有購買序數在10以內的所有記錄(這10次當然是最近的三次),
2:把查出的記錄按照用戶分組
3:將夠買序數作為列標題,求出每個用戶在各自10次內的各自購買數量
例如:查詢結果
用戶 1次, 2 次,3次, 4次, 5次, 6 次,7次, 8 次,9 次,10 次
張 11 , 0, 12, 23 , 24 , 5 , 67 , 88 ,91, 5
李 4 , 5 , 1 , 8 , 6, 10 , 23, 0, 0 , 0
結果的意思是張用戶在最近10次購買記錄內第一次購買了11個,第二次購買了0個,第三次購買了12個......
李用戶在10次內第一次購買了4個.....
我給你弄了半天,也只能做到查出你表內所有用戶最近10次購買記錄的「購買數量」
不能夠查出購買記錄的所有欄位,想必我的查詢是最符合你的意思的了
如果你非要查出所有欄位,我建議你用編程序的方法,設置數組來做,如果光靠查詢,估計夠嗆
給分吧,哈哈。。。。。。。。。。
Ⅸ ACCESS中如何實現提取記錄總數的方法
隨機提取access資料庫記錄的幾種方法
前天有人在QQ群里問如何從Access資料庫里隨機抽取幾條記錄。這個問題如果放在SQL Server上就比較容易解決,比如隨機抽取10條記錄,採用的T-SQL語句是:
Select Top 10 * From [SomeTable] Order By NewID()
可以獲得很好的效果,但是對於Access資料庫而言就沒有這么方便了。
在以前我也遇到過這樣的問題,當時寫一篇整理文字來討論這個問題。這兩天找到了這篇文字重新整理一下放在這里。採用的Access資料庫。總結了幾種辦法
方法一:有人用如下代碼以記錄總數為極大值來首先提取出指定數量的隨機數,然後以這些隨機數做為記錄ID。
VBScript代碼:
dim n,j
dim su()
dim a,b,k
b=myrs.RecordCount
Randomize
redim su(index_N)
su(1)=Int((b * Rnd) + 1)
for n=2 to index_N
a=Int((b * Rnd) + 1)
for j=1 to n
do while a=su(j)
a=Int((b* Rnd) + 1)
j=1
loop
next
su(n)=a
next
這種方式有一些問題,就是當主鍵ID不連續的話,有可能某些隨機數不存在ID序列當中。另外ID的最大值與總的記錄值不一定相等,這樣有些記錄ID會永遠被忽略。
方法二:有人採用一條SQL語句解決此問題
select top 5 * From Table1 order by Rnd()*5
這條語句可以隨機從Access資料庫中攝取5條記錄。但是實際操作中,其生成的記錄結果是固定的,失去了隨機攝取記錄的意義。
方法三:有這樣一種方法。
利用隨機數生成主鍵的記錄ID
yourstr="*1*3*4*6*12*...."
然後用
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0"
yourstr
可以生成隨機數多一點大於所限定抽取的隨機數為好。這樣可以排除記錄不足的情況。
此方法也不太好,而且採用InStr語句,不能利用索引優化,對資源有一定的消耗。
方法四:
代碼實現如下:
<%
n=10 ''取任意10條記錄
set rs = server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1
count=rs.recordcount ''記錄總數
IF Count<>empty Then
Randomize
for i = 1 to n ''循環n次
num=Fix(Rnd*count) ''num便是隨機產生的記錄行數,用Fix(),使其不會大於count值。
rs.move num ''移到改隨機行
Response.write rs(0) ''出該條記錄
rs.movefirst ''別忘了再把指針移到第一條
next
End IF
rs.close
set rs = nothing
%>
這個方式感覺上比較好些。
方法五:
此方法應該算是比較接近於SQL Server的用法了。
代碼:
randomize '得到隨機的種子,9999根據你的記錄數量級調整,具體調到你出來的記錄集隨機序列均化
seed=round(rnd*9999)
'以下兩種方法都可以,id是主鍵自增欄位
Sql="select id,分值 from table where order by rnd(-"&seed&"-id-"&seed&")"
……
如果還有更好的方法也可以提出來。
Ⅹ 如何讓access窗體保存記錄後自動新建記錄
只需要一個按鈕即可,這個按鈕執行一項兩條命令:(單引號後面為說明,插入命令時可以省略)
DoCmd.RunCommand acCmdSaveRecord 『保存當前記錄
DoCmd.GoToRecord , "", acNewRec 』新建新的紀錄