sql做的进销存和vba做的进销存哪个更好

sql做的进销存和vba做的进销存哪个更好,第1张

这两个做出来的都有缺点,不好用,不知能,对 *** 作者要求高。

sql 是数据库,能把数据库搞懂,玩得溜溜的那都是高级工程师了;

vba是office里面的,能用vba做进销存的人要么是程序员,要么是高级别的老会计;

无论是二者中的哪一个,都不会着手这些基础的工作。就算是做出来了,其它人也不会用。

进销存这块最好的办法就是采用专业的软件公司开发的专业软件,体验度和易用度、安全性都比个人做的要好上很多。

我司做的就有进销存软件,并且还能对接在线微信商城,有需要可以试试,免费的哦。

select 款式,

(select sum(数量) from 进仓表 where 款式=a.款式 and 日期<'2009-11-1' )-(select sum(数量) from 出仓表 where 款式=a.款式 and 日期<'2009-11-1' ) as 期初数,

(select sum(数量) from 进仓表 where 款式=a.款式 and 日期>='2009-11-1' and 日期<='2009-11-30') as 本月进仓,

(select sum(数量) from 出仓表 where 款式=a.款式 and 日期>='2009-11-1' and 日期<='2009-11-30') as 本月进仓,

(select sum(数量) from 进仓表 where 款式=a.款式 and 日期<='2009-11-30' )-(select sum(数量) from 出仓表 where 款式=a.款式 and 日期<'2009-11-30' ) as 期末数 from 进仓表 as a group by 款式

通过前面几篇 SQL语言教程 中,我们已说到这一篇要介绍的是Insert Into的另一种用法,也就是把检索出来的数据,批量添加到数据库中,其语法是:

INSERT INTO 表格名1 (列名11,列名12, ...) SELECT 列名21, 列名22, ... FROM 表格名2

以上的语法是最基本的语法。在Select后,还可能含有 WHERE、 GROUP BY、 及 HAVING 等子句,以及表格连接及别名等等。与Select Into对比,Select Into中目标表名应该在数据库中是不存在的,而 Insert Into Select正好相反,其目标表名在数据库中一定要存在的。

下面的这个例子,是把出仓表中的所有的钢笔数据,添加到上一篇文章http://www.excelba.com/Art/Html/310.html 生成的临时表的数据库中,如果你没有看到上一篇文章,请运行上一篇文章的程序生成临时表后,再运行下面这段程序。

Sub 进销存表数据库中出仓表里检索的数据添加到已有的表()

'*******************************************

'时间:2008-10-21

'作者:bengdeng

'功能:在程序文件同一目录下进销存表数据库中出仓表里检索的数据生成新表

'注意:要在工具/引用中引用microsoft activex date objects x.x

' 其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版

'发布:http://www.excelba.com

'*******************************************

Dim conn As ADODB.Connection

Dim WN As String

Dim OldTableName As String

Dim NewTableName As String

Dim sSql As String

Dim tStr As String

WN = "进销存表.mdb"

OldTableName = "出仓表"

NewTableName = "临时表"

tStr = "钢笔"

Set conn = New ADODB.Connection

conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0" &_

"Data Source=" &ThisWorkbook.Path &"\" &WN

conn.Open

If conn.State = adStateOpen Then

sSql = "Insert Into " &NewTableName &" Select * From " &OldTableName &" Where 物品名称='" &tStr &"'"

conn.Execute sSql

MsgBox "成功把“" &OldTableName &"”中的所有的“" &tStr &"”记录汇总到“" &NewTableName &"”中!", , "http://excelba.com"

conn.Close

End If

Set conn = Nothing

End Sub

因为上一篇文章生成的临时表与出仓表的结构是完全相同的,因此正如上面的例子,我们不需要列出NewTableName中列明细资料,而OldTableName的列的资料,我们也可以用*来表示!

那么,如果列名不一样,能不能导入呢?当列的数据类型一致时,还是可以导入的,下面的这段 *** 作Excel文件的程序,功能是把进仓表的毛笔数据,导入到临时表中,其中进仓表的进仓日期对应着临时表的出仓日期,进仓数量对应着出仓数量,代码如下:

Sub 进销存表文件中进仓表里检索的数据添加到已有的表()

'*******************************************

'时间:2008-10-21

'作者:bengdeng

'功能:在程序文件同一目录下进销存表文件中进仓表里检索的数据生成新表

'注意:要在工具/引用中引用microsoft activex date objects x.x

' 其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版

'发布:http://www.excelba.com

'*******************************************

Dim conn As ADODB.Connection

Dim WN As String

Dim OldTableName As String

Dim NewTableName As String

Dim sSql As String

Dim tStr As String

WN = "进销存表.xls"

OldTableName = "进仓表"

NewTableName = "临时表"

tStr = "毛笔"

Set conn = New ADODB.Connection

conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0" &_

"Extended Properties=Excel 8.0" &_

"Data Source=" &ThisWorkbook.Path &"\" &WN

conn.Open

If conn.State = adStateOpen Then

sSql = "Insert Into [" &NewTableName &"$] (出仓日期,物品名称,出仓数量) " &_

"Select 进仓日期 As 出仓日期,物品名称,进仓数量 As 出仓数量 From [" &_

OldTableName &"$] Where 物品名称='" &tStr &"'"

conn.Execute sSql

MsgBox "成功把“" &OldTableName &"”中的所有的“" &tStr &"”记录汇总到“" &NewTableName &"”中!", , "http://excelba.com"

conn.Close

End If

Set conn = Nothing

End Sub

Insert Into Select就介绍完了,现在可以动手复制一下上面的代码,运行一下看一下效果吧*^_^*。

如果你不是从第一篇 SQL语言教程 看起,你需要到http://www.excelba.com/Soft/Html/119.html 下载文件,压缩文件包含三个文件,数据库文件——进销存表.mdb与Excel文件——进销存表.xls就是保存数据的文件,而主文件.xls就是主程序文件,以后大家的代码可以添加在这个文件的新模块里,然后再运行程序代码。

转载请注明:本文来自:Excel吧 (www.excelba.com) 详细出处参考:http://www.excelba.com/Art/Html/311.html


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9942922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存