設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

123下一頁
返回列表 發(fā)新帖
查看: 8612|回復: 26
打印 上一主題 下一主題

Excel和AccessPK第二期:Access自定義單號

[復制鏈接]

點擊這里給我發(fā)消息

跳轉到指定樓層
1#
發(fā)表于 2016-3-19 16:11:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
EXCEL和ACCESS PK

第二期


Access向Excel宣戰(zhàn):

上一期是Excel的優(yōu)勢功能,Access略遜一籌,這期出個Access的題,讓Excel來模仿一下

功能要求:

1. 金額自動計算:金額=單價*數(shù)量
2. 單號自動生成(且不允許用戶修改,鎖定)
    單號不允許重復
    單號為 字頭+日期+序號   序號生成規(guī)則:每天從001開始復位,同字頭 同日期的按順序生成

功能示意 請看圖片和動畫




操作動畫 (動畫請點擊一下觀看,否則畫面有點。




本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2016-3-19 16:16:50 | 只看該作者
這些EXCEL和ACCESS都很容易做呀,問題好像簡單了些。

點擊這里給我發(fā)消息

3#
 樓主| 發(fā)表于 2016-3-19 16:24:50 | 只看該作者
lwwvb 發(fā)表于 2016-3-19 16:16
這些EXCEL和ACCESS都很容易做呀,問題好像簡單了些。

Access容易做
Excel應該不太容易吧?
你是Access元老,先站在Access這邊哦,先別把Excel答案放出來哦:)
星期一如果沒人接招,你再放不遲

點擊這里給我發(fā)消息

4#
 樓主| 發(fā)表于 2016-3-19 16:25:58 | 只看該作者
lwwvb 發(fā)表于 2016-3-19 16:16
這些EXCEL和ACCESS都很容易做呀,問題好像簡單了些。

lwwvb, 這題你嘗試下:
http://ctxi.cn/thread-121531-1-1.html

我沒想到好辦法
5#
發(fā)表于 2016-3-19 16:34:10 | 只看該作者
好,我看看
回復

使用道具 舉報

點擊這里給我發(fā)消息

6#
發(fā)表于 2016-3-19 16:56:34 | 只看該作者
這個問題用Excel來解決確實有點累……
按下面這個表格結構,金額還是很好辦的,公式是:
  1. =IF(OR(A2="",B2=""),"",D2*E2)
復制代碼



不過單號的公式就有點長:
  1. =IF(OR(A2="",B2=""),"",A2&TEXT(B2,"emmdd")&TEXT(COUNTIF(C$1:C1,"?"&TEXT(B2,"emmdd")&"???")+1,"000"))
復制代碼


最要命的就是不讓用戶自己修改,那就得事先把這個公式從第2行下拉到第1048576行,然后再把工作表保護:


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

點擊這里給我發(fā)消息

7#
 樓主| 發(fā)表于 2016-3-19 17:02:07 | 只看該作者
強!挺快的嘛。
不過有一點不對,可能我沒說明清楚
A20160319001 與 B20160319001 是不同的


A20160319001
A20160319002
但到 B開頭時
B20160319 也要從001開始 而不是 003開始

點擊這里給我發(fā)消息

8#
發(fā)表于 2016-3-19 17:10:05 | 只看該作者
tmtony 發(fā)表于 2016-3-19 17:02
強!挺快的嘛。
不過有一點不對,可能我沒說明清楚
A20160319001 與 B20160319001 是不同的

這個簡單,公式改一下就好了
  1. =IF(OR(A2="",B2=""),"",A2&TEXT(B2,"emmdd")&TEXT(COUNTIF(C$1:C1,A2&TEXT(B2,"emmdd")&"???")+1,"000"))
復制代碼

點擊這里給我發(fā)消息

9#
發(fā)表于 2016-3-19 17:10:57 | 只看該作者
這個問題,Access的處理步驟是什么呢?也不公布一下

點擊這里給我發(fā)消息

10#
 樓主| 發(fā)表于 2016-3-19 17:28:41 | 只看該作者
Access 是用VBA 實現(xiàn)的,當然也可不用代碼,考慮用Iif函數(shù)  ,有心的Access網(wǎng)友可去試一下
不過我是VBA控,沒有辦法

1. 代碼是在窗體中先做2個自定函數(shù)

'取單號函數(shù)
Private Function GetBillNo() As String
  Dim strArea As String
  Dim strDate As String
  Dim strNo As String
  Dim strSeqNo As String
  strArea = Nz(區(qū)域) '字頭
  strDate = Format(Nz(日期), "YYYYMMDD")
  strSeqNo = Format(Val(Right(Nz(DMax("單號", "銷售表", "單號 like '" & strArea & strDate & "*'"), 0), 3)) + 1, "000")
  strNo = strArea & strDate & strSeqNo
  單號 = strNo
End Function

'取金額函數(shù)
Private Function GetAmt() As String
  金額 = Nz(數(shù)量) * Nz(單價)  
End Function



2. 然后在窗體的屬性中設置一下

   
   注意是用shift 同時選擇2個控件,可批量設置屬性
   金額也類似

   單號禁用在Access里很簡單,就是選擇這個控件,屬性窗體 數(shù)據(jù)選卡 里 “可用” 設置為 否

源文件在這里



希望大家跟貼上傳更好的方法

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 08:40 , Processed in 0.142559 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表