㈠ VBA中如何用FtpFindFirstFile查看FTP上文件是否存在
建议你先使用SetFTPDirectory指定目录,然后再使用FtpFindFirstFile函数,这时sFile应该就是"0000.xls"。
你可以参考一下cFTP类中的GetFTPDirectoryContent方法的代码。
还没有安装FTP服务器,还不能帮你写出完整的代码,你自己先试试,不好意思。
㈡ VBA如何访问ftp路径的文件
需要先判断该文件是否存在。
VBA是到一个ftp服务器上打开指定的文件,但是需要先判断该文件是否存在,在那个cFTP的类中找到一段代码。
㈢ 怎样用vba实现文件上传到ftp服务中
VBA访问FTP进行文件传输的,网络上见到3种方式,用过2种。
一、VBA+DOS批处理的方式,本质上还是通过DOS来进行,有点麻烦,而且运行中会弹出CMD窗口,现在已经不用这种方法了。
VBA写DOS:
OpengetfdForOutputAs#1
Print#1,""
Print#1,"("
Print#1,"echo;openxx.xx.xx.xx"
Print#1,"echo;user"
Print#1,"echo;pwd"
Print#1,"echo;cd""";ftpfdx8;""""
Print#1,"echo;prompt"
Print#1,"echo;dir"
Print#1,"echo;bye"
Print#1,")>""";fdx8;""""
Print#1,
Print#1,"ftp-v-i-s:""";fdx8;"""|find""ftpgroup"">""";folderx8;""""
Print#1,
VBA运行它:
Shell("ftp-v-i-s:"&ftpfile)
二、VBA调用API,具体是basp21.dll
详见http://www.hi-ho.ne.jp/babaq/eng/basp21f.html,说明很详细,有实例
示例如下,比较简单易懂,其中getfile为下载,上传使用putfile就好了。
PrivateSubForm_Load()
DimftpAsObject,rcAsLong,vAsVariant,v2AsVariant
DimctrAsLong
Setftp=CreateObject("basp21.FTP")
ftp.OpenLog"c: emplog.txt"
rc=ftp.Connect("ftp.microsoft.com","anonymous","")
Ifrc=0Then
v=ftp.GetDir("bussys/winnt/winnt-public",2)
IfIsArray(v)Then
ForEachv2Inv
Debug.Printv2
Next
EndIf
v=ftp.GetDir("bussys/winnt/winnt-public")
IfIsArray(v)Then
ForEachv2Inv
Debug.Printv2
Next
EndIf
rc=ftp.GetFile("bussys/winnt/winnt-public/*","c: emp")
EndIf
End
EndSub
代码如下:有问题,发网络消息给我。
在Microsoft visual basic中,工具-引用 Microsoft ActiveX Data Objects 2...选一个高版本的
Dim conn As New ADODB.Connection
connStr = "Driver={SQL Server};DataBase=test;Server=(local);UID=sa;PWD=123"
conn.Open connStr '连接数据库
Dim rs As New Recordset
sql = "select * from a" '查看表a
rs.Open sql, conn, 3, 3
Do While Not rs.EOF '循环表a的内容
MsgBox (rs("field1")) '显示表中field1字段内容
rs.MoveNext
Loop
'connStr = "Driver={SQL Server};DataBase=test;Server=(local);UID=sa;PWD=123"
'test是数据库名
'(local)是服务器名或IP地址,可以:192.168.1.1,可以是:www.sina.com.cn
'sa是数据库用户
'123是数据库用户密码
㈤ Excel 求助,如何使用VBA实现远程访问SQL数据库
VBA
连接
SQL
SERVER
数据库
实例:
Dim
strConn
As
String,
strSQL
As
String
Dim
conn
As
ADODB.Connection
Dim
ds
As
ADODB.Recordset
Dim
col
As
Integer
'连接数据库的字符串
strConn
=
"Provider=SQLOLEDB.1;Persist
Security
Info=True;User
ID=[user];Password=[password];Initial
Catalog=[database];Data
Source=[数据库IP地址或数据库服务器名称];Connect
Timeout=720;
"
'查询语句,如果sql语句很长可以用strSQL=strSQL+来连接分成多段的语句,如果语句很短可以只写在一行上。
strSQL
=
"select
*
from
Hy_KPI_Shop_Dept_WeekRpt
"
strSQL
=
strSQL+"where
sdate='2014-01-01'
order
by
sdate,shopid
"
Set
conn
=
New
ADODB.Connection
Set
ds
=
New
ADODB.Recordset
'打开数据库连接
conn.Open
strConn
'该句和数据库连接字符串处的Connect
Timeout=720,表示说如果语句运行时间很长,这两句可以延长vba的等待时间,没有这两句,vba往往会报查询超时。
conn.CommandTimeout
=
720
With
ds
'根据查询语句获得数据
.Open
strSQL,
conn
'自动控制加入所有列标题
For
col
=
0
To
ds.Fields.Count
-
1
'请注意Offset(0,
col)中的参数一定要正确,该句表示标题将会写在第一行,从A1单元格开始,如果不想写入标题行,可将下面这句注释掉。
Worksheets("门店各课KPI周报").Range("A1").Offset(0,
col).Value
=
ds.Fields(col).Name
Next
'加入所有行数据,该句表示查询结果将会写在第一行,从A1单元格开始,但是由于标题行写在第一行了,所以实际这一行从标题下的一行写入。
Worksheets("sheet1").Range("A1").Offset(1,
0).CopyFromRecordset
ds
End
With
'关闭数据库连接和清空资源
Set
ds
=
Nothing
conn.Close
Set
conn
=
Nothing
㈥ VBA中如何用Dir()函数查看ftp服务器上的文件是否存在
要用SHELL函数:
shell(dir xxxx)
DOS底下的FTP 你可以查帮助
FTP -? 然后按照你的需要写命令.
例如:
shell("ftp 12.216.10.10 -s:a.txt")
在a.txt里定义你的所有输入行:
youruserid
password(或anonymous)
cd .\data\200804\01\
dir *.xls
quit
㈦ vba 中的用shell连接FTP服务器问题问题
因为shell
语句
是调用
程序
来运行的,你应该调用程序,并且把
参数传递
给程序,这样就行了...
比如,Shell
"C:\Program
Files\Internet
Explorer\iexplore.exe
www..com",这样就能用IE链接到网络上...
你的可以试试Shell
"C:\Program
Files\Internet
Explorer\iexplore.exe
ftp://[email protected]\123\123\12#.xls",用Shell
"C:\WINDOWS\explorer.exe
"
&
"ftp://[email protected]\123\123\12#.xls"也可以...我这边测试时没
权限
,上不去...
由于你是连接
服务器
,有时需要
用户权限
,这样的话,
参数
就要相对复杂一点...