我有一个MS Access数据库(出于种种原因,我没有理由不使用Access)。
我正在尝试运行VBA子程序,以根据作为查询结果的参数循环进行某些查询。
有一个查询,对表中的值求和。 我需要使用IF ELSE语句在VBA中使用函数返回此函数。
<template>
<div id="databinding">
<div id="counter-event-example">
<p style="font-size:25px;">Language displayed : <b>{{ languageclicked }}</b></p>
<button-counter v-for="(item, index) in languages"
v-bind:item="item"
v-bind:index="index"
v-on:showlanguage="languagedisp"></button-counter>
</div>
</div>
</template>
<script>
// import Home from './components/Home.vue';
// import component1 from './components/component1.vue';
export default {
name: 'app',
Vue.components('button-counter', {
template: '<button v-on:click = "displayLanguage(item)"><span style = "font-size:25px;">{{ item }}</span></button>',
data: function () {
return {
counter: 0
}
},
props: ['item'],
methods: {
displayLanguage: function (lng) {
console.log(lng);
this.$emit('showlanguage', lng);
}
},
});
new Vue({
el: '#databinding',
data: {
languageclicked: "",
languages: ["Java", "PHP", "C++", "C", "Javascript", "C#", "Python", "HTML"]
},
methods: {
languagedisp: function (a) {
this.languageclicked = a;
}
}
})
};
</script>
<style>
</style>
代码不会在这里继续,相反,当我进入代码时,它将在此函数处停止并出现错误“期望的函数或值”
Public dbs As DAO.Database
Sub Main()
Dim SumCheck As Double
Set dbs = CurrentDb
GoTo LoopCheck
LoopCheck:
SumCheck = SOSum(dbs)
If SumCheck = 0 Then
GoTo EndPart
Else
GoTo STPTGet
End If
循环检查查询很简单
Public Function SOSum(db As DAO.Database) As Double
Dim sumg As Double
Set db = dbs
Set sumg = db.Execute("LoopCheck")
Set db = Nothing
Set SOSum = sum
End Function
查询在Access中工作,它应该只检查它是否为0。
这是我的第一篇文章,因此请原谅任何格式错误或明显丢失的信息。任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
您的代码存在一些问题。
首先,您似乎拥有dbs
作为公共数据库对象。因此,您无需将其传递给函数。设置完毕后,您就可以使用它。
接下来,db.execute
方法将仅运行操作查询(例如INSERT,UPDATE,DELETE ...),并且不返回任何内容。您将需要使用记录集来获取查询结果。
最后,您的函数返回一个Double
,因此您不应该使用Set
关键字来返回值。
将所有这些放在一起:
数据库对象全局声明:
Public dbs as DAO.Database
一个MAIN
子(问题中只给出了部分):
Sub Main()
Dim SumCheck As Double
Set dbs = CurrentDb
'...
SumCheck = SOSum
'...
以及您的SOSum函数:
Public Function SOSum() As Double
Dim sum As Double
Dim rs As DAO.Recordset
Set rs= dbs.OpenRecordset("LoopCheck")
sum = rs(0).Value
Set rs = nothing
SOSum = sum
End Function