建立FORM窗体,加个按钮控件,加一个DATAGRIDVIEW控件,双击FORM,加入命名空间usingSystem.Data.OleDb 双击按钮,进入按钮代码。
OleDbConnectionstrConnectionnewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0DataSource="+"员工信息.mdb"+"PersistSecurityInfo=False")。
2.//建立数据库引擎连接,注意数据表(后缀为.db)应放在DEBUG文件下。
3.OleDbDataAdaptermyda=newOleDbDataAdapter("select*from。
4.trConnection) //建立适配器,通过SQL语句去搜索数据库。
5.按F5运行后,点击BUTTON按钮,便会显示相应的SQL语句下的数据库里的表。
6. stringstrcon="Provider=Microsoft.Jet.OLEDB.4.0DataSource=db4.mdb" mycon=newOleDbConnection(strcon)。
Access表不能按照EXCEL表格理解。数据库关系具有2个特点,就是可任意交换两行或两列的位置。所以你要单独查找第二行是不能实现的,因为第二行可以是任意一行。你要查找某一行,就需给他一个ID号。Access数据库中是用VBA来编写自定义的函数,需要通过Dataobject来调用SQL语句才能使某一行中所有字段的值叠加在一起。Access中是用VBA来编写自定义的函数,需要通过Dataobject来调用SQL语句。Access中用VBA编写的函数可以用在Access查询中。
我在Access中的实现方法如下:
新建一个Module,在里面定义自己的函数。函数定义如下:
FunctionAddString(partstringAsString)AsString
'声明查询语句字符串和字段相加的字符串变量
DimoriginalStr,queryStrAsString
'声明ADO的一个记录对象,注意用New来声明并生成实例
DimmyRecordsetAsNewADODB.Recordset
originalStr=""
'查询语句字符串是通过连接零件编号生成的,注意SQL语句需要引号
queryStr="select*frommaterialwhereparts="""+partstring+""""
myRecordset.OpenqueryStr,CurrentProject.Connection
DoWhileNotmyRecordset.EOF
originalStr=originalStr+myRecordset("module")+","
myRecordset.MoveNext
Loop
'VBA语法,把返回值赋给函数名
AddString=originalStr
EndFunction
看到一个网友解决同样问题的做法,他不是用ADO对象,他用了下面一句:
SetFF=CurrentDb.OpenRecordset(queryStr)
他实际上是隐性用了DAO对象。不过,如果你在VBA中显性声明DAO对象的话,有可能会碰到编译错误,这是因为AccessVBA默认没有包含DAO库的引用。
函数定义好后,就可以用在查询里了,SQL视图下,我的例子的SQL语句如下:
SELECTAddString(parts)ASAllMod,material.parts
FROMmaterial
GROUPBYmaterial.parts
ORDERBYmaterial.parts
MSSQLServer中的例子就很多啦,也是自定义一个函数,然后把自定义的函数用在SQL语句中,我把例子也记下来吧。
createfunctionfn_AddString(@partnumbervarchar(50))
returnsnvarchar(1000)
as
begin
declare@snvarchar(1000)
set@s=''
select@s=@s+module+','frommaterialwhereparts=@partnumber
return@s
end
go
在SQL语句中调用该函数
selectparts,dbo.fn_AddString(parts)asAllModfrommaterial
groupbyparts
————————————————
版权声明:本文为CSDN博主「gracexu」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gracexu/article/details/2077079
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)