扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
好像听说有个超级采集的你试试看吧 有那个让数据库导入功能的 百度一下 超级采集 就行了
创新互联建站服务项目包括乐山网站建设、乐山网站制作、乐山网页制作以及乐山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,乐山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到乐山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
Private Sub 入库_click()
'默认你的后面的textbox的名称就是前面的名称
'这里的数据类型可能要转换,比如价格可能要转换成double(CDbl()),购买日期转行成日期时间型(CDate())
'假设你的数据表是aa,字段名和界面显示是一样的
Dim Rs As ADODB.Recordset
'在插入前建议你在aa表里查查这条记录是否已经存在,如果已经存在则给出提示(查询条件看你怎么设置的主键了)
Rs = objADO.GetRs("insert into aa (书名,定价,作者,图书类别,出版社,介质,购买日期,内容简介) values (" 书名.Text "," vbCrLf _
"定价.text ", " 作者.text ", " 图书类别.text ", " 出版社.text ", " 介质.text ", " 购买日期.text ", " 内容简介.text ")
'这里如果表aa的字段多于界面显示的也没关系,只会给你aa后面括号里的字段赋值,这里后面values的顺序必须和前面的对应
'正确插入后建议给个提示,同时看看有没有必要把界面的所有值清空(图书类别.text = "")
'这里的objADO建议这么定义Public objADO As SqlServer,有别的查询也可以直接用,你自己怎么定义的就换成你自己的
'GetRs的定义在下面,你也可能是dim strsql as string,然后strsql = (上面的插入语句),然后用下面Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly的方法,都行的,就看你自己怎么写的了
End Sub
Public Function GetRs(ByVal strSql As String) As ADODB.Recordset '通过执行SQL语句返回记录集
Dim Rs As ADODB.Recordset
On Error GoTo Err0
If Not OpenDB Then
Exit Function
End If
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseClient '使用本地(客户端)游标,这样Rs.RecordCount属性才能正确返回记录集行数
DoEvents
Rs.Open strSql, Conn, adOpenStatic, adLockReadOnly
Set GetRs = Rs
Exit Function
Err0:
If InStr(1, Err.Description, "通讯链接失败") 0 Then
Set Conn = New ADODB.Connection
LocalStat = "断开" '设置本地数据库连接状态
End If
MsgBox Err.Description
End Function
兄弟,你要好好看看面向对象思想,楼上回答的很详细了,你要把excel里的每一行,也就是一条记录当作一个对象,比如学生对象,而其中你比较关注的用户名,密码,年龄什么的都是学生对象的属性,对于怎么给对象赋属性值,规则你可以自己定,或者直接写死,第一个就是用户名。。。等等,要是想存入库,直接存object就行了。
直接用SQL语句写算了;
insert into 出库表 (物资编码,物资名称,xx,xxx,...) values ('030101', 'xx商品', '..',...);
delete from 入库表 where 物资编码=‘030101’ and 物资名称=‘xx商品’ ;
首先要检查你的excel表里面的数据内容、格式、长度、空值等是否都符合要求。这些都可以了,右键点击要导入的SQL数据库名,选择“任务”——〉“导入数据”,在弹出的窗口选择“数据源”为excel,并指定路径。在下面“数据库”指定要导入哪个数据库,一般默认就可以。下一步也基本默认,然后再下一步选择要导入的excel表,确认下去就可以
首先,我觉得你问题中说的要选出“求数量和大于库存的条件记录日期”,那这个日期难道不应该是20140408, 因为只有在这一记录进入是,当时的数量和才大于当前库存。
如果我的理解是对的,你可以用下面的语句来实现:
SELECT top 1 t1.in_date
FROM test1 t1
LEFT JOIN test1 t2
ON t1.in_date = t2.in_date
AND t1.qty 0
GROUP BY t1.in_date
HAVING SUM(t2.qty) 150
ORDER BY in_date
-- output:
-- 20140408
如果你是在存储过程或Job中写这个逻辑,完全可以用游标去做,更加灵活。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流