查询access奇怪情况

taohua300 2013-08-29 03:36:20
环境:
xp sp3中文,vfp 9.0 sp2 英文,Access 2007

错误现象:
odbc连接成功
使用sqlexec函数 执行
select etunimi from etunimi1
可以返回正确结果

select etunimi from etunimi1 where etunimi like 'AA*'
有时返回空结果
但绝大多数sqlexec返回 -1
但再access中可以正确执行

其他:
Sqlstringconnect("Driver={Microsoft Access Driver (*.mdb)};dbq=.\datas.mdb;pwd=")
难道是因为access 2007 的原因?
...全文
95 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
在1楼就说过*->% 用ADO连接MDB时,都要*->%
taohua300 2013-08-29
  • 打赏
  • 举报
回复
为什么access中用*做通配符 但vfp连接access执行sql语句的时候要用% ?
taohua300 2013-08-29
  • 打赏
  • 举报
回复
12 楼的代码是可以的 返回正确结果 我尝试7楼代码中也使用% 居然也是正确结果
taohua300 2013-08-29
  • 打赏
  • 举报
回复
上面说错了 我以为%是* 是%的时候在access返回结果为空
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
conn1=CreateObject("adodb.connection") conn1.open('provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\kbs\datas.mdb') rs=createobject("adodb.recordset") With rs .ActiveConnection = conn1 .Source = "select etunimi from etunimi1 where etunimi like 'AA%'" .CursorType = 3 .LockType = 3 .CursorLocation = 3 .Open EndWith Do While Not rs.EOF Messagebox(rs.Fields(0).Value) rs.MoveNext Enddo
taohua300 2013-08-29
  • 打赏
  • 举报
回复
返回正确结果 这就是我比较奇怪的地方
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
在ACCESS中运行 select etunimi from etunimi1 where etunimi like 'AA%' 结果如何
taohua300 2013-08-29
  • 打赏
  • 举报
回复
引用 8 楼 WWWWA 的回复:
用你的代码直接运行 select etunimi from etunimi1 where etunimi like 'AA%' 结果如何
结果仍然为空
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
用你的代码直接运行 select etunimi from etunimi1 where etunimi like 'AA%' 结果如何
taohua300 2013-08-29
  • 打赏
  • 举报
回复
Local con as ADODB.Connection
Local csql as Character
Local rs as ADODB.RecordSet
Local cmd as ADODB.Command

cString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\kbs\datas.mdb"
con = Createobject("ADODB.Connection")
con.Open(cString)
cmd = Createobject("adodb.command")
cmd.ActiveConnection = con
cmd.CommandText = "select etunimi from etunimi1"
rs = cmd.Execute()
Do While Not rs.EOF
*	Messagebox(rs.Fields(0))
	Messagebox(rs.Fields(0).Value) 
	rs.MoveNext
Enddo 
模仿vb的写的 上面代码能正确返回结果 带了where子句还是不行
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb
taohua300 2013-08-29
  • 打赏
  • 举报
回复
是mdb。 第一次使用vfp访问access 因为之前有控制excel的问题 所以使用了mdb
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
你用ADO连接mdb,select etunimi from etunimi1 where etunimi like 'AA%' 2007用MDB,不是ACCDB?
taohua300 2013-08-29
  • 打赏
  • 举报
回复
使用% 在access 2007 返回结果为空
taohua300 2013-08-29
  • 打赏
  • 举报
回复
引用 1 楼 WWWWA 的回复:
select etunimi from etunimi1 where etunimi like 'AA%'
仍然返回 -1 原来的时候我也是用% 发现不行 以为是语法错误 查了access帮助文件是用*做通配符
WWWWA 2013-08-29
  • 打赏
  • 举报
回复
select etunimi from etunimi1 where etunimi like 'AA%'

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧