如何在VB中创建一个数据库并添加多张表。如何对两个数据库中的字段进行查询(有相同的编号),并相乘

第一个问题的代码:PrivateSubcreateeng_Click()frmmain.ShowDimfmAsStringCommonDialog1.Filter="md... 第一个问题的代码:
Private Sub createeng_Click()
frmmain.Show
Dim fm As String
CommonDialog1.Filter = "mdb|*.mdb;"
CommonDialog1.FilterIndex = 1
CommonDialog1.FileName = ".\projectinfo.mdb"
CommonDialog1.Flags = 6
CommonDialog1.Action = 2
fm = CommonDialog1.FileName
Dim cat As New ADOX.Catalog
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim pstr As String
pstr = "Provider=Microsoft.Jet.OLEDB.4.0;"
pstr = pstr & "Data Source=" & fm
cat.Create pstr
Set conn = New ADODB.Connection
conn.Open pstr
SQL = "create table 工程概况 (建设单位 char , 设计单位 char , 施工单位 char , 监理单位 char, 工程地点 char ,开竣工日期 char,建筑面积 char )"
conn.Execute SQL
conn.Close

conn.Open pstr
SQL = "create table 工程量清单(编号 char,子目名称 char,数量 char)"
conn.Execute SQL
conn.Close
每次运行都出错,说语法错误

第二个问题的代码
Private Sub Form_Load()
con1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source = " & frmmain.CommonDialog1.FileName & ""
Set rst1 = New ADODB.Recordset
rst1.Open "工程造价", con1, 1, 2
con2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source = " & App.Path & "\quantity.mdb"
Set rst2 = New ADODB.Recordset
rst2.Open "定额", con2, 1, 2
Set rst3 = New ADODB.Recordset
rst3.Open "工程量清单", con1, 1, 2
End Sub
Private Sub Command1_Click()
sql1 = "select 编号,数量 from 工程量清单 "
Set rst1 = con1.Execute(sql1)
sql2 = "select 编号,子目名称,单价 from 定额 where rst2!编号 = rst1!编号 "
Set rst2 = con2.Execute(sql2)
Set DataGrid1.DataSource = rst2
End Sub

我本来是想通过DATAGRID看看查询有没有效果,但是每次都没有。。
求大神帮助!!!
在线等!!!!!大神们快点解救我吧
展开
 我来答
zx001z7d53
2013-01-17 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:6010万
展开全部
SQL = "create table 工程量清单(编号 char,子目名称 char,数量 char)"
中的(是中文的,改为英文的试试
sql2 = "select 编号,子目名称,单价 from 定额 where rst2!编号 = rst1!编号 "
改为
sql2 = "select 编号,子目名称,单价 from 定额 where “ & rst2!编号 & " = " & rst1!编号
追问
大神!!!我要怎么计算工程造价啊!!!公式是单价乘以数量然后累加。。。可是在两个数据库里面。。。。。我的思路是通过工程量清单的编号(projectinfo.mdb)在定额(quantity.mdb)里面找对于编号的单价,然后相乘。。。我会提高悬赏!!大神救我
追答
计算工程造价 没有必要临时创建两个表吧?为什么搞到两个数据库里面?再说了,查询的时候SQL语句支持乘法和累加的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4e1c58699
2013-01-18 · TA获得超过322个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:140万
展开全部
改成这样:
Private Sub Command1_Click()
sql1 = "select 编号,数量 from 工程量清单 "
Set rst1 = con1.Execute(sql1)

sql2 = "select 编号,子目名称,单价 from 定额 where " & rst2!编号 & " = " & rst1!编号 & ""
Set rst2 = con2.Execute(sql2)'MSFlexGrid1.TextMatrix(1, 1) = rst2.Fields(3)
'Set DataGrid1.DataSource = rst2
MSFlexGrid1.Rows = n + 2
For i = 0 To n
For r = 0 To 2
MSFlexGrid1.TextMatrix(i + 1, r + 1) = rst2.Fields(r)
Next
Next
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式