Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

对不起,仓促提问如何作一个可控自动增长字段?

tt  发表于:2007-11-08 12:46:52  
复制

 

就是一个文本框,没有值、不输入值的时候取上一条纪录的值加 1。当输入值 N 得时候,返回 N+1。

 

我看过很多例子了。可是自己不太会代码。试验也不成功。昨天在ACCESS911论坛也问过。

 

 

 

 

Top
竹笛 发表于:2007-11-08 13:00:06

你的意思是输入900时,自动返回901?

如果是这样,为何不直接输入901?



竹笛 发表于:2007-11-08 13:02:06
新增记时自动复制上一记录的某些控件值:http://www.accessoft.com/article-show.asp?id=795

tt 发表于:2007-11-08 13:45:01

 

谢谢站长。我在看看。

 

 



tt 发表于:2007-11-08 14:37:46

 

 

我明白了,是我发的帖子表述错误。应该是字段内无内容 null ,就取上个记录加 1 。如果是手动输入了 1 就保持这个 1,不作增加,等下一条记录再增加。

 

 

 

 



竹笛 发表于:2007-11-08 15:37:34

字段无内容,就说明不存在上一条记录,有些矛盾,看不懂.

如果是手动输入了 1 就保持这个 1 这一句也看不太懂,输入了1,就肯定是1了.



tt 发表于:2007-11-08 17:15:49

 

 

字段的当前记录无内容,当前记录 Null,就取本字段上一条记录值 + 1 。

 

也是当前记录输入后保持 1 ,再到下一个记录就是自动增长成 1+1。

 

 



Victor Duane 发表于:2007-11-11 22:40:06

Private Sub Command4_Click()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("型体编号表")
rs.AddNew
rs("型体编号") = Me.型体编号
rs.Update
rs.Close
Set rs = Nothing
Me.型体编号 = Null
Me.型体编号 = uf_AutoNum("型体编号表", "型体编号")

End Sub

Private Sub Form_Load()
Me.型体编号.Enabled = True

Me.型体编号 = uf_AutoNum("型体编号表", "型体编号")

Me.型体编号.Enabled = False
Me.文本1.SetFocus
End Sub


'使用方法:Me.型体编号 = uf_AutoNum("型体编号表", "型体编号")
Function uf_AutoNum(strTable As String, strfldName As String)
'strtable 表名
'strfldname 字段名
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset(strTable)
Dim strYY As String
Dim strMaxNum As String
Dim strMidYY As String
Dim strMidNum As String
strYY = Format(Date, "YY")
Debug.Print rst.RecordCount
If rst.RecordCount > 0 Then
    strMaxNum = DMax(strfldName, strTable)
    Debug.Print strMaxNum
    strMidYY = Mid(strMaxNum, 3, 2)
    strMidNum = Format(Val(Right(strMaxNum, 3)) + 1, "000")

        If strMidYY = strYY Then
            uf_AutoNum = "GL" & strYY & strMidNum
        Else
            uf_AutoNum = "GL" & strYY & "001"
        End If
Else
    uf_AutoNum = "GL" & strYY & "001"
End If
rst.Close
Set rst = Nothing

End Function



tt 发表于:2007-11-20 19:49:27

 

謝謝段老師,我囬去試驗一下。dao現在用的不多拉。都在用ado。我以前都沒學過。

 



许积云 发表于:2007-11-24 08:34:10
VictorDuane 讲得真详细啊,我也路过学学~~

tt 发表于:2008-01-12 19:17:18

 

啊,今天有时间来看看。近来啃书。

 

sub xuhao_exit()

 

dim xv as integer

 

xv= dmax (序号, user_table)   '序号是字段名

 

if me.xuhao <> 0  then        'xuhao 是控件名

 

序号 = me.xuhao

 

else

 

序号 = xv + 1

 

end if

 

end sub

 

我自己做的,还好用。

 

 

 

 



tt 发表于:2008-01-12 19:46:49

 

o 太仓楚了,因该是 Dmax (id ,user_table )的确

 



总记录:11篇  页次:1/1 9 1 :