|
以下内容是我花了一个晚上时间在“专家答问”中的一些答复。
问:accesss如何把我想要的记录插在适当的位子?
答:accesss不是Excel,所有记录都是插入到最后面然后根据关键字排序。如果需要自定义记录顺序,可以增加一个排序字段(最好不要调整关键字字段),通过手工调整排序字段序号,也可以通过插入记录获取数据表中当前选定记录的排序字段序号用程序进行处理,并以此字段排序,把插入记录显示在适当的位子。
下面一段代码放在窗体的成为当前事件中,可实现数据表在当前记录前插入新记录。条件是要有“序号”字段并以此字段排序:
Private Sub Form_Current()
If Me.序号 <> 0 Then
If Me.CurrentRecord <> 1 Then Me.Tag = Me.序号
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tem SET tem.序号 = [序号]+1 WHERE tem.序号>" & (Me.Tag - 1)
DoCmd.RunSQL "INSERT INTO tem(序号) VALUES (" & (Me.Tag) & ")"
Me.Requery
Me.RecordsetClone.FindFirst "序号=" & (Me.Tag)
Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub
问:如何控制该列数据在输入整数时,显示整数;输入小数时,如果有1位小数就显示1位小数;如果有n位小数就显示n位?
答:在表设计器中把该字段的数据类型设为“数字”,在下面的字段大小设为“双精度型”即可。如果是单精度型,若整数部分太大,则会自动去掉后面的小数位。
问:在组合框选定内容在相应的文本框显示相关信息代码怎样写?
答:可以通过选定一个选项,如产品编号,自动把产品型号等相关信息辅助录入到当前记录,当然也可采用关联表的方式自动动态显示,各有优缺点。在问题示例中,DLookup函数用错,每次只能求一个字段值,你分别查找和赋值就可以了。
Private Sub 供货商编号_LostFocus()
On Error GoTo Err_供货商编号_LostFocus
Dim StrTemp As String
StrTemp = DLookup("公司名称", "供货商资料", "[供货商编号]= '" & Me![供货商编号] & "'")
Me![公司名称] = StrTemp
StrTemp = DLookup("供货商", "供货商资料", "[供货商编号]= '" & Me![供货商编号] & "'")
Me![供货商] = StrTemp
Exit_供货商编号_LostFocus:
Exit Sub
Err_供货商编号_LostFocus:
MsgBox Err.Description
Resume Exit_供货商编号_LostFocus
End Sub
问:access中一张表中某字段数据输入后,如何再另一张表中实现同字段相应数据增减啊?比如进销存,“商品进货表”中一件商品某规格进货1件,如何同步让“总库存表”中该商品该货号自动加一件。
答:大概有三种方法(跟孔乙己的回字写法一样多:)
1、使用SQLServer来储存数据,使用触发器;
2、“总库存表”使用查询,库存数使用计算字段;
3、在“商品进货”录入窗体中数据更新事件中用UPDATE语句进行“总库存表”的数据更新。
推荐使用第二种方法。
问:access报表分组后如何按固定行打印,并当数据不足时以空行补足?
答:在技术论坛中用“空行”作关键字搜索,下面是其中一个帖子。
“精简的报表补空行代码”
http://www.office-cn.net/forum.php?mod=viewthread&tid=57087&highlight=%BF%D5%D0%D0
问:ms date取的日期变量放在查询语句里变文本了?
答:注意查询语句中不同数据类型的界定符,应改为:
List54.RowSource = "select 金额 from 业绩 where 日期 l= #" & b & "#"
另外日期型字段及日历控件要注意小时及分钟的处理,下面是朱总对另一个问题的解答,供参考。
通过程序来构造:
Dim strUpdateSQL As String
strUpdateSQL = "UPDATE [" & 表名称变量 & "] SET " & _
"[" & 字段名变量 & "] = "
' 如果是数值类型
strUpdateSQL = strUpdateSQL & 更新值变量
' 如果是文本类型
strUpdateSQL = strUpdateSQL & "'" & 更新值变量 & "'"
' 如果是日期类型
strUpdateSQL = strUpdateSQL & "#" & 更新值变量 & "#"
' 执行查询
Docmd.RunSQL strUpdateSQL
问:多用户
答:拆分共享
问:点击“向导创建*”时报错--“方法‘CurrentDb作用于对象‘_Application时失败
tanhong的答案
怀疑是没有完全安装的原故,建议用安装盘重新完全安装或修复一下试试看
Trynew的答案
我试过拍几下显示器后窗口消失!
问:access2003中的表,为何在一台电脑中可以正常打开显示而在另一台电脑中却不能打开显示?
答:你偷偷地把正常显示的电脑抱回来自己用。
问:我的电脑是vista的,电脑里有2007只有60天,但是我下载了2003安装,电脑提示我"该电脑有了一个相同产品,要卸载掉以前的",后来我卸载了2007,安装2003的时候总还会弹出相同的对话框,没办法安装2003,怎么办啊?
tanhong的答案
你可以试试在运行中键入:regedit 打开注册表,在查找中找到 Office 对应的主键或键值,删除掉,也许可以达到目的,但这样操作有一定的风险性,在操作前做好相应的备份。
Trynew的答案
你还可以试试把vista卸载了安装XP,也许可以达到目的,但这样操作也有一定的风险性,在操作前做好相应的备份。
问:修改 默认值 咱家是猫的答案
Me.控件名.DefaultValue=xxx
Trynew的答案
字段属性 控件属性 事件语句
问:数据项出错:我本人是个菜鸟,会一点点VB。最近用VB试写仓库的库存查询;用access2003作数据库,用VB的MSHFlexGrid接收数据时,字段和数据会出错;比如“型号”数据列的值接收到了“单价”的值。。。?
答:不会是access2003的错,也不关MSHFlexGrid的事。如果不是VB出错,肯定是你搞错。建议买本厚点的VB大全。
问:如何实现EXCEL和ACCESS的数据同步:我用excel制作了一张员工信息表,并将内容导入到Access 里,如果在access里修改数据,怎么才能够让access和excel数据同步
答:用“链接”代替“导入”excel表
问:在ACCESS中自动为表中记录添加序号?
用ACCESS创建表时数据类型中有自动编号这一选项,但是是无法编辑的。我现在需要制作一个窗体在插入记录时自动为记录添加序号,并且能够实现通过指定序号的方法将后加的记录插入到先前已有的记录之间,请问有什么好的方法么? PS:最好能通过添加查询和窗体中的设置解决,VBA的话我还不大熟悉......
答:下面一段代码放在窗体的成为当前事件中,可实现在插入记录时自动为记录添加序号,并且能够实现通过指定序号的方法将后加的记录插入到先前已有的记录之间。条件是要有“序号”字段并以此字段排序:
Private Sub Form_Current()
If Me.序号 <> 0 Then
If Me.CurrentRecord <> 1 Then Me.Tag = Me.序号
Else
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tem SET tem.序号 = [序号]+1 WHERE tem.序号>" & (Me.Tag )
DoCmd.RunSQL "INSERT INTO tem(序号) VALUES (" & (Me.Tag+1) & ")"
Me.Requery
Me.RecordsetClone.FindFirst "序号=" & (Me.Tag+1)
Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub
具体范例参见:
http://www.office-cn.net/vvb/thread-62216-1-1.html
|
|