Office中国论坛/Access中国论坛

标题: 如何冻结列 [打印本页]

作者: kent_73    时间: 2012-10-9 12:09
标题: 如何冻结列
如何用代码冻结第一列?

引用的附件是jackysu78分享的
原帖地址:http://www.office-cn.net/forum.p ... hlight=%D2%BB%B4%B0

谢谢!

[attach]50489[/attach]
作者: todaynew    时间: 2012-10-9 12:54
http://www.office-cn.net/forum.p ... hlight=%C3%E6%CF%F2
作者: kent_73    时间: 2012-10-9 13:16
todaynew 发表于 2012-10-9 12:54
http://www.office-cn.net/forum.php?mod=viewthread&tid=67448&highlight=%C3%E6%CF%F2

没找到我要的功能。
我需要的是怎样用代码冻结列。
谢谢
作者: todaynew    时间: 2012-10-9 14:07
本帖最后由 todaynew 于 2012-10-9 14:08 编辑
kent_73 发表于 2012-10-9 13:16
没找到我要的功能。
我需要的是怎样用代码冻结列。
谢谢


查一下不就完事了

[attach]50491[/attach]
作者: kent_73    时间: 2012-10-9 14:11
不好意思,找了多次,就是没找到啊
下面的代码中没有【冻结列】






1、加载时,使用子窗体1,学生表全部记录,锁定主窗体和子窗体记录,配置按钮。

Private Sub Form_Load()
Dim sql As String
Me.子窗体.SourceObject = "子窗体1"
sql = "select * from 学生表"
Me.班级ID.Locked = True
Me.班级名称.Locked = True
Me.子窗体.Form.RecordSource = sql
Me.子窗体.Form.AllowAdditions = False
Me.子窗体.Form.AllowDeletions = False
Me.子窗体.Form.AllowEdits = False
Me.隐藏列.Visible = False
Me.展开列.Visible = False
Me.隐藏行.Visible = False
Me.展开行.Visible = False
End Sub


2、关闭窗体时,压缩并修复数据库。

Private Sub Form_Close()
'压缩和修复数据库
CommandBars("Tools").Controls("数据库实用工具(&D)").Controls("压缩和修复数据库(&C)...").accDoDefaultAction
End Sub


3、双击班级ID或班级名称时,解锁。

Private Sub 班级ID_DblClick(Cancel As Integer)
Me.班级ID.Locked = False
End Sub


Private Sub 班级名称_DblClick(Cancel As Integer)
Me.班级名称.Locked = False
End Sub


4、失去焦点时,锁定班级ID或班级名称。

Private Sub 班级ID_LostFocus()
Me.班级ID.Locked = True
End Sub


Private Sub 班级名称_LostFocus()
Me.班级名称.Locked = True
End Sub


5、单击时,使用字窗体1或子窗体2。


Private Sub 更换窗体1_Click()
Me.子窗体.SourceObject = "子窗体1"
Me.隐藏列.Visible = True
Me.展开列.Visible = True
Me.隐藏行.Visible = True
Me.展开行.Visible = True
Me.新增.Visible = True
Me.删除.Visible = True
End Sub


Private Sub 更换窗体2_Click()
Me.子窗体.SourceObject = "子窗体2"
Me.隐藏列.Visible = False
Me.展开列.Visible = False
Me.隐藏行.Visible = False
Me.展开行.Visible = False
Me.新增.Visible = False
Me.删除.Visible = False
End Sub


6、单击时,显示或者隐藏子窗体。

Private Sub 隐藏窗体_Click()
Me.子窗体.Visible = False
End Sub


Private Sub 显示窗体_Click()
Me.子窗体.Visible = True
End Sub

7、单击时,显示或隐藏按钮。

Private Sub 隐藏按钮_Click()
Me.隐藏列.Visible = False
Me.展开列.Visible = False
Me.隐藏行.Visible = False
Me.展开行.Visible = False
End Sub


Private Sub 显示按钮_Click()
Me.隐藏列.Visible = True
Me.展开列.Visible = True
Me.隐藏行.Visible = True
Me.展开行.Visible = True
End Sub


8、单击时,自动编号并新增记录。

Private Sub 新增_Click()
Dim sql As String
DoCmd.SetWarnings no
sql = "INSERT INTO 学生表 ( 班级ID, 学生ID ) "
sql = sql + "SELECT Right(Forms!主窗体!班级ID,1) AS 班级ID, IIf(Max([学生ID]) Is Null,Forms!主窗体!班级ID & '01',Format(Max([学生ID])+1,'000')) AS ID "
sql = sql + "FROM 学生表 WHERE 学生表.班级ID=Forms!主窗体!班级ID;"
DoCmd.RunSQL sql
Me.子窗体.Requery
End Sub


9、单击时,删除指定记录。

Private Sub 删除_Click()
DoCmd.SetWarnings no
DoCmd.RunSQL "DELETE * FROM 学生表 WHERE 删除=Yes;"
Me.子窗体.Requery
End Sub

10、单击时,锁定、解锁、刷新子窗体。

Private Sub 锁定_Click()
Me.子窗体.Form.AllowAdditions = False
Me.子窗体.Form.AllowDeletions = False
Me.子窗体.Form.AllowEdits = False
End Sub


Private Sub 解锁_Click()
Me.子窗体.Form.AllowAdditions = True
Me.子窗体.Form.AllowDeletions = True
Me.子窗体.Form.AllowEdits = True
End Sub


Private Sub 刷新_Click()
Me.子窗体.Requery
End Sub


11、单击时,隐藏或展开列。

Private Sub 隐藏列_Click()
Me.子窗体.Form.家庭住址.ColumnHidden = True
Me.子窗体.Form.联系电话.ColumnHidden = True
End Sub

Private Sub 展开列_Click()
Me.子窗体.Form.家庭住址.ColumnHidden = False
Me.子窗体.Form.联系电话.ColumnHidden = False
End Sub


12、单击时,隐藏或展开行。


Private Sub 隐藏行_Click()
Dim sql As String
sql = "select * from 学生表 where isnull(姓名)"
Me.子窗体.Form.RecordSource = sql
Me.子窗体.Requery
End Sub


Private Sub 展开行_Click()
Dim sql As String
sql = "select * from 学生表"
Me.子窗体.Form.RecordSource = sql
Me.子窗体.Requery
End Sub




作者: todaynew    时间: 2012-10-9 15:15
本帖最后由 todaynew 于 2012-10-9 15:16 编辑
kent_73 发表于 2012-10-9 14:11
不好意思,找了多次,就是没找到啊
下面的代码中没有【冻结列】


鬼打架。

请仔细观看4楼的动画。
作者: kent_73    时间: 2012-10-10 09:19
没仔细看
谢谢了




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3