ACCESS数据库与实际文件对应问题!

lijingxi 2009-12-02 10:31:31
ACCESS数据库与实际文件对应问题!

问题有点复杂!希望我说的大家能明白!

有一个FLASH小游戏网站,网站上有很多FLASH小游戏,网站数据库为ACCESS,但是有一部分小游戏丢失了。但是数据库里面的FLASH数据还在.导致网站打开里面却现实不了游戏. 请问有什么办法能把已经丢失的FLASH小游戏在数据库里面把数据找出来..

例如:表NC_FlashList的showurl列 内容如下:

/flashdb/2007/2007/12/20071215184555998.swf
/flashdb/2007/2007/12/20071215184613219.swf
/flashdb/2007/2007/12/20071215184618221.swf
/flashdb/2007/2007/12/20071215184629687.swf
/flashdb/2007/2007/12/20071215184634684.swf
/flashdb/2007/2007/12/20071215184643283.swf
/flashdb/2007/2007/12/20071215184647274.swf
/flashdb/2007/2007/12/2007121518477182.swf
/flashdb/2007/2007/12/20071215184726647.swf
/UploadFile/2007-12/200712221003832190.swf
/flashdb/2007/2007/12/20071215184742282.swf
/flashdb/2007/2007/12/20071215184753116.swf
/flashdb/2007/2007/12/20071215184757476.swf
/flashdb/2007/2007/12/2007121518489229.swf
/flashdb/2007/2007/12/20071215184815541.swf
/flashdb/2007/2007/12/20071215184828921.swf
/flashdb/2007/2007/12/20071215184844635.swf
/flashdb/2007/2007/12/20071215184850784.swf
/flashdb/2007/2007/12/20071215184855949.swf
/flashdb/2007/2007/12/2007121518494574.swf
/flashdb/2007/2007/12/20071215184915659.swf
/flashdb/2007/2007/12/20071215184927359.swf
/flashdb/2007/2007/12/20071215184941293.swf
/flashdb/2007/2007/12/20071215184951541.swf
/flashdb/2007/2007/12/20071215184959863.swf
/flashdb/2007/2007/12/2007121518504443.swf
/flashdb/2007/2007/12/20071215185012231.swf

但是实际上其中的一部分FALASH 已经丢失了!

我可以列出一分现在存在的FLASH文件名的名单:
2007121894524802.swf
2007121894529237.swf
200712189452993.swf
2007121894530298.swf
2007121894533952.swf
2007121894536651.swf
2007121894539904.swf
2007121894541359.swf
200712189454314.swf
2007121894544956.swf
2007121894546644.swf
2007121894548326.swf
2007121894550571.swf
2007121894551128.swf
200712189458808.swf
200712189459922.swf
2007121894615668.swf
2007121894617683.swf
2007121894620325.swf
2007121894632226.swf
2007121894636153.swf
2007121894641936.swf
2007121894643562.swf

请问谁有什么办法能删除表NC_FlashList里面实在已经丢失的FLASH数据?

思路:我是否可以在表NC_FlashList里面新加入一个列s,然后用语句判断列showurl列里面是否有 *****.swf 如果有则列S数据为1 然后删除S列里面非1的数据?

按上面的思路哪位大哥告诉我应该怎么写语句?具体怎么操作?

这只是我一个想法.如果谁有更好的建议或者思路也可以写出来 万分感谢大家!
...全文
146 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijingxi 2009-12-17
  • 打赏
  • 举报
回复
各位大哥不好意思,最近实在有事,没时间上网 现在才来结帖,请原谅!
wwwwb 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lijingxi 的回复:]
用 delete from NC_FlashList where mid(showurl,instrrev(showurl,'/')+1) not in (select 列名 from tempA) 这个语句执行成功了.

还有一个问题请教!

ID name1                 name2                 name3
1 20071214214734282.swf 200712262091018931.swf 2007122720113578257.swf
2 20071214214749813.swf 20071214214757880.swf 20071214214811761.swf
3 20071214214825834.swf 20071214214837221.swf 20071214215810556.swf
4 2007121422032576.swf 20071214221134325.swf 2007121422121523.swf
5 20071214221327556.swf 2007121422133755.swf 20071214221342549.swf
6 20071214221717307.swf 20071214221723817.swf 20071214221731634.swf
7 200712142217479.swf 2007121422175100.swf 20071214221916259.swf
8 20071214221937848.swf 20071214221947689.swf 20071214221959979.swf
9 20071214222031220.swf 20071214222333783.swf 20071214222352575.swf

有3列这样的数据 我如何让他变成:

ID name1
1 20071214214734282.swf
2 20071214214749813.swf
3 20071214214825834.swf
4 2007121422032576.swf
5 20071214221327556.swf
6 20071214221717307.swf
7 200712142217479.swf
8 20071214221937848.swf
9 20071214222031220.swf
10 20071214222413406.swf
11 20071214222444510.swf
12 20071214222528602.swf
13 2007121422257718.swf
14 20071214222646956.swf
15 2007121422272928.swf
16 20071214222817442.swf
17 20071214223114359.swf
18 20071214223157924.swf
19 20071214223253855.swf
20 20071214223340204.swf
21 20071214223421473.swf
22 2007121422348274.swf
23 20071214223540106.swf
24 20071214223822862.swf
25 20071214223923251.swf
26 20071214223952998.swf
27 20071214224045432.swf

也就是 把列2 列3 的数据都放到列1的下面 让列1的数据包含列2列3?vv
[/Quote]

用 UNION ALL即可
select name1 from NC_FlashList
union all
select name2 from NC_FlashList
union all
select name3 from NC_FlashList
ACMAIN_CHM 2009-12-03
  • 打赏
  • 举报
回复
select name1 from NC_FlashList
union all
select name2 from NC_FlashList
union all
select name3 from NC_FlashList
lijingxi 2009-12-03
  • 打赏
  • 举报
回复
用 delete from NC_FlashList where mid(showurl,instrrev(showurl,'/')+1) not in (select 列名 from tempA) 这个语句执行成功了.

还有一个问题请教!

ID name1 name2 name3
1 20071214214734282.swf 200712262091018931.swf 2007122720113578257.swf
2 20071214214749813.swf 20071214214757880.swf 20071214214811761.swf
3 20071214214825834.swf 20071214214837221.swf 20071214215810556.swf
4 2007121422032576.swf 20071214221134325.swf 2007121422121523.swf
5 20071214221327556.swf 2007121422133755.swf 20071214221342549.swf
6 20071214221717307.swf 20071214221723817.swf 20071214221731634.swf
7 200712142217479.swf 2007121422175100.swf 20071214221916259.swf
8 20071214221937848.swf 20071214221947689.swf 20071214221959979.swf
9 20071214222031220.swf 20071214222333783.swf 20071214222352575.swf

有3列这样的数据 我如何让他变成:

ID name1
1 20071214214734282.swf
2 20071214214749813.swf
3 20071214214825834.swf
4 2007121422032576.swf
5 20071214221327556.swf
6 20071214221717307.swf
7 200712142217479.swf
8 20071214221937848.swf
9 20071214222031220.swf
10 20071214222413406.swf
11 20071214222444510.swf
12 20071214222528602.swf
13 2007121422257718.swf
14 20071214222646956.swf
15 2007121422272928.swf
16 20071214222817442.swf
17 20071214223114359.swf
18 20071214223157924.swf
19 20071214223253855.swf
20 20071214223340204.swf
21 20071214223421473.swf
22 2007121422348274.swf
23 20071214223540106.swf
24 20071214223822862.swf
25 20071214223923251.swf
26 20071214223952998.swf
27 20071214224045432.swf

也就是 把列2 列3 的数据都放到列1的下面 让列1的数据包含列2列3?
wwwwb 2009-12-03
  • 打赏
  • 举报
回复
实际上就是一个对比过程,你将存在的文件存入表中,再与工作表连接对比,
可以用dir *.FLASH文件名>tt.txt 将存在的文件写入TXT中,再导入

or

用VBA调用FSO,循环得到FLASH文件名,写入表中,再做处理
ACMAIN_CHM 2009-12-03
  • 打赏
  • 举报
回复
建议你上传个测试用MDB文件。这样可以直接知道你的问题,就不需要猜测了。

可以上传到 http://www.access911.net/csdn
lijingxi 2009-12-03
  • 打赏
  • 举报
回复
ACMAIN_CHM 大哥 直行返回错误 参数个数不匹配

我的QQ155534 能加QQ谈么?
ACMAIN_CHM 2009-12-03
  • 打赏
  • 举报
回复
delete from NC_FlashList where mid(instrrev(showurl,'/')) not in (select 列名 from tempA)


少了个)
lijingxi 2009-12-03
  • 打赏
  • 举报
回复
ACMAIN_CHM 大哥还在么? 我按你说的执行
delete from NC_FlashList where mid(instrrev(showurl,'/') not in (select 列名 from tempA)
这个语句提示错误

丢失),],或项目 在查询表达式'mid(instrrev(showurl,'/') not in (select 列名 from tempA)'中


请问这是什么错误 怎么解决啊?
ACMAIN_CHM 2009-12-02
  • 打赏
  • 举报
回复
[Quote]怎么才能把TXT列表导入到ACCESS的表中呢?[/Quote]

ACCESS的菜单中不是有导入文件吗?
lijingxi 2009-12-02
  • 打赏
  • 举报
回复
楼上的 你说的方法也许可以,但是FLASH文件名的名单非常多非常大.怎么才能把TXT列表导入到ACCESS的表中呢?有什么好方法么?
ACMAIN_CHM 2009-12-02
  • 打赏
  • 举报
回复
[Quote]我可以列出一分现在存在的FLASH文件名的名单:[/Quote]

这样的话,你可以把这个清单放在一张表中
tempA (filename)

然后

delete from NC_FlashList where mid(instrrev(showurl,'/') not in (select filename from tempA)

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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