VB程序员博客

VB程序开发

Public Sub UpData()              '在线升级
          On Error Resume Next
          Dim MyData()    As Byte, VerInfo()      As Byte, Ti      As Long, Tj      As Long
           
          If Inet1.StillExecuting = True Then Exit Sub
          VerInfo() = Inet1.OpenURL("http://www.xxx.com/uploadsoft/update.txt", icString)
          Ti = InStr(1, VerInfo, vbCrLf) + 2
          Tj = InStr(Ti, VerInfo, vbCrLf)
           
          '检测版本号
          If Val(Left$(VerInfo, Ti - 3)) <= Val(App.Major & "." & App.Minor & App.Revision) Then Exit Sub
          If MsgBox("SWpsF  发布了新的版本:" + Left$(VerInfo, Ti - 3) + ",文件大小:" + Mid$(VerInfo, Tj + 2) + ",是否进行在线升级  ?", vbYesNo + vbQuestion, "在线升级") = vbNo Then Exit Sub
          IsUp = True
           
  '开始下载更新文件
          MyData() = Inet1.OpenURL("http://www.xxx.com/uploadsoft/" + Mid$(VerInfo, Ti, Tj - Ti), icByteArray)
          Open App.Path + "" + Mid$(VerInfo, Ti, Tj - Ti) For Binary Access Write As #1
          Put #1, , MyData()
          Close #1
          IsUp = False
  '执行更新文件
          ShellExecute 0, vbNullString, App.Path + "" + Mid$(VerInfo, Ti, Tj - Ti), vbNullString, App.Path, SW_SHOWNORMAL
          End
  End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
在执行了put #1,,mydata() 以后,写出的文件是一个4K大小的文件,文件名是一样的,不是我想要下来的文件,请高手帮看下有什么问题,还有啊,后面这个SHELLEXECUTE可以在本程序执行的时候强制关闭掉本身而运行那个程序吗?————天.没高手了/留下你的邮箱,确认你已给分后,再发给你!!…我一定给你分啊…lyxrkj@163.com发给我好了.

好吧.给你了分给你啦/赶紧的发来


建了一个表“XX”有A、B、C、D字段,A字段是一个独一无二的编号
  另一个表“YY”有A、B、C、D、E、F、G、H字段
新建一个窗体,这个窗体录入结果保存到“YY”表中,窗体中的控件有A、B、C、D、E、F、G、H
实现窗体中:输入A字段中的独一无二的编号后,窗体中B、C、D控件就自动跳出XX表中字段的内容,然后依次输入E、F、G、H的内容,保存结果进入“YY”表中。
请教高手指点…

在哪里输入啊???自己顶表XX和表YY的A/B/C/D字段的内容和值完全一样么?如果表XX和表YY的A/B/C/D字段的内容和值完全一样,那么你现在这样设计表结构是冗余太多,容易带来问题。

应该
(1)把表YY中的B, C, D字段都删掉,把表XX的A字段和表YY的A字段关联。
(2)新建ACCESS窗体时,数据源直接从表XX和表YY的JOIN查询得到,这样你的要求就可以自动满足。A控件change事件不断刷新;或者A控件失去焦点时查XX表,分别给BCD赋值。<
你可以把你的报表的记录源也改成来自XX和YY的联合查询。

在B、C、D控件中输入“DLookUp”函数如下:
=DLookUp("[被引用的字段名称,即B]","[被引用的表名称,即XX]","[被引用的表中的条件字段,即A]='" & Forms![所属窗体名称]![保存结果的表中的条件字段,即YY表中的A字段名称] & "'")


    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "database.mdb;Persist Security Info=False"
    Adodc1.LockType = adLockOptimistic
    Adodc1.RecordSource = "select * from server "
    Adodc1.Refresh
   
    Set DataGrid1.DataSource = Adodc1

程序是列出SERVER 表单的所有内容…但是备注型的比较长..看不到..能做到自动适应不参考

VB中DataGrid列怎么样自动适应数据宽度

也就是判断数据源字段的长度,再定义datagrid单元格的宽度。


各位大哥,我做了个小工具,想用vb实现自动更新,但是我听说urldownloadtofile容易被杀毒软件误杀,那么,我只能用其他控件来实现这个功能了么?请有经验的大哥帮下忙好么。更新什么?
和urldownloadtofile有关系?我想用urldownloadtofile来下载,然后自动对比文件并更新。
可以有很多种方法下载啊~~<
<
是这样的,我的自动更新是从我的站点下载我写的那个新的程序,以前的要被更新。
<
额。。。不好意思啊,我才学没多久,对win32api不熟,嘿嘿http://blog.csdn.net/CHRL/archive/2009/12/19/5036640.aspx<
局域网内的自动更新有做过,Internet的没有。


    最近喜欢用电脑看小说了!不过用鼠标点来点去麻烦,网上基本上又没什么好的自动阅读器。正好最近学了VB,我就想能不能用VB编写一个自动阅读器:

        ①可以把txt文本直接导入阅读器的文本框内(用其它方法也行);
        ②用户可以设置它每行显示的字数和滚动的速度,然后让它自动由下至上滚动阅读!!

        如果,用户可以设置字体、字体颜色、字体大小和背景颜色,那就更好了!

  高手恳请指点,指点!!还有就是,它还有书签功能!lz说的功能ReadBook都有,下个就行了。
要自己做建议用richtext控件<


现在主要问题是:发的帖子都是只有标题的帖子,正文部分没有信息;
把信息填充到正文文本框的部分一直没弄成功。。。
请大家帮忙看下,谢谢。。。

发帖页面部分源代码——————————————-
<em>标题 </em> <input type="text" size="50" maxlength="127" name="doc_title" class="txt" /> <cite id="do_title_word"> </cite>
<select name="doc_topic" onChange="DoAction('PutTopic');">
<option value="">- 斑竹未设置分类 - </option>
<textarea name="doc_text"  style="width:100%;height:273px"> </textarea>
——————————————-
'''''''''''登陆部分代码(自动登录部分已实现)
'''''''''''''''登陆部分代码
Private Sub Command1_Click()

Dim vDoc, vTag, nTag
Dim I As Integer
On Error GoTo Line
Set vDoc = WebBrowser1.Document
For I = 0 To vDoc.All.length - 1
If UCase(vDoc.All(I).tagName) = "INPUT" Then
Set vTag = vDoc.All(I)
If vTag.Type = "text" Then

If vTag.Name <> "validate" Then vTag.Value = "t_0001" '这个是用户名

ElseIf vTag.Type = "password" Then
vTag.Value = "t_0001" '这个是密码
ElseIf vTag.Type = "submit" Then '这个是提交按钮
vTag.Click
Exit Sub
End If
End If
Next I

For I = 0 To vDoc.All.length - 1
If UCase(vDoc.All(I).tagName) = "BUTTON" Then
Set nTag = vDoc.All(I)
If nTag.Type = "submit" Then
nTag.Click
End If
End If
Next I
Sleep 3000 'ms
WebBrowser1.Navigate "http://www.xici.net/b16462/board.asp"

Line:
End Sub
——————————————-
''''''''''''''''发帖部分代码
''''''''''''''''发帖并自动提交
Private Sub Command6_Click()
Dim vDoc, vTag
Dim I As Integer
On Error GoTo Line
Set vDoc = WebBrowser1.Document

For I = 0 To vDoc.All.length - 1
If UCase(vDoc.All(I).tagName) = "INPUT" Then
Set vTag = vDoc.All(I)

If vTag.Type = "textarea" Then
If vTag.Name = "doc_text" Then
vTag.Value = Text11 '要发表的帖子正文,没有实现把信息填充到正文的多行文本框内。。。
Else
End If
End If

If vTag.Type = "text" Then
If vTag.Name = "doc_title" Then vTag.Value = Text5.Text '要发表的帖子标题
ElseIf vTag.Type = "submit" Then '这个是提交按钮
vTag.Click
'''''''Exit Sub
End If
End If
Next I

'''''''For I = 0 To vDoc.All.length - 1
''''''''If UCase(vDoc.All(I).tagName) = "BUTTON" Then
''''''''Set nTag = vDoc.All(I)
''''''''If nTag.Type = "submit" Then
''''''''nTag.Click
''''''''End If
''''''''End If
''''''''Next I
WebBrowser1.Navigate "http://www.xici.net/b495265/board.asp"
Line:

End Sub
——————————————-

JC叔叔在盯着偶们哩

弄好之后共享下。。。

关注一下

可能要用到抓包工具了吧,
抓包工具还不知道怎么用呢。。。

ding…

ding…


某网页上的文本输入框,源码如下:
文本框源码:
<INPUT class="" id=NSRLSH onkeydown=eapObjsMgr.getEAPObj(this).enterToTab()style="BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:1px;WIDTH:259px;BORDER-RIGHT-WIDTH:1px"maxlength=20 name=string(NSRLSH) JSObjName="Taxpayer" prompt="纳税人流水号" onAffirm="btnClick('changePage')' model="SWJG" isnullable="flase" isUniEAP="true">

问题:怎么自动填写数据并模拟一下回车

原来这个问题在这儿发过,有人这样回复,不过这东西不是VB的,有点儿象DELPHI或PB
//输入数据
NSRLSH.text="abc";
//模拟回车
NSRLSH.focus();
var wsh = WScript.CreateObject("WScript.Shell");
wsh.SendKeys("{ENTER}");
wsh=null;
VB应

内部网络的页面啊,互联网看不到的

这么写中不?
Dim vDoc, vTag, i
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
if vtag.name="string(NSRLSH)" Then
vTag.value="123321"
SendKeys "{ENter}"
vTag.Click
end if

我写的不行啊,点了没反映

参看下面贴子,将相关的需要修改的点击语句改为赋值语句,getElementById 根据需要改为getElementsByName

JS写的网页,怎么写点击的语句

我想得太简单了,我只想点击后worksheets.sheet(1).clees(i,2).copy 然后past,写时我才发觉悟,还要先找到句柄才能粘贴,真的不如将getElementsByName替换下getElementById

学习

xue  xi 

看看怎么样

感觉非常幸运哦,我提的总是也能被推荐!!
哈哈哈,大笑中

不要把嘴巴都笑歪了啊

/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
    try {
        var form = document.forms[formName];
        for (var key in jsonObj) {
            var obj = document.forms[formName].document.getElementById(key);
            if (obj) {
                if (obj.tagName.toLowerCase() == "select") {  //是否是 下拉框
                    obj.value = jsonObj[key];
                } else if (obj.tagName.toLowerCase() == "textarea") { //清空  textarea 的 value
                    obj.value = jsonObj[key];
                } else if (obj.tagName.toLowerCase() == "input") { //如果是input标签
                    if (obj.type.toLowerCase() == "checkbox" || obj.type.toLowerCase() == "radio") { //把单选,复选置于非选中状态
                        var bCheck = jsonObj[key];
                        if ((bCheck == 1)) {
                            obj.checked = true;
                        } else {
                            obj.checked = false;
                        }
                        bCheck = null;
                    } else if ((obj.type.toLowerCase() != "button") && (obj.type.toLowerCase() != "reset")) {//清空非按钮和非重置 的所有值
                        obj.value = jsonObj[key];
                    }
                }
            }
        }
    } catch(e) {
        alert("客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
    }
};

不知道能帮你不

mark

帮你顶人气!

不知道你在做什么呢!自动填写数据不就是赋值吗?回车不就是 submit() 一下吗?

学习

/**  
*   解析JSON的数据格式,并把数据绑定到显示控件  
*   strJson   基本格式为控件NAME:值  
*   @param   formName   json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致  
*/  
Tools.prototype.bindFormData   =   function(formName,   jsonObj)   {  
        try   {  
                var   form   =   document.forms[formName];  
                for   (var   key   in   jsonObj)   {  
                        var   obj   =   document.forms[formName].document.getElementById(key);  
                        if   (obj)   {  
                                if   (obj.tagName.toLowerCase()   ==   "select ")   {     //是否是   下拉框  
                                        obj.value   =   jsonObj[key];  
                                }   else   if   (obj.tagName.toLowerCase()   ==   "textarea ")   {   //清空     textarea   的   value  
                                        obj.value   =   jsonObj[key];  
                                }   else   if   (obj.tagName.toLowerCase()   ==   "input ")   {   //如果是input标签  
                                        if   (obj.type.toLowerCase()   ==   "checkbox "   ||   obj.type.toLowerCase()   ==   "radio ")   {   //把单选,复选置于非选中状态  
                                                var   bCheck   =   jsonObj[key];  
                                                if   ((bCheck   ==   1))   {  
                                                        obj.checked   =   true;  
                                                }   else   {  
                                                        obj.checked   =   false;  
                                                }  
                                                bCheck   =   null;  
                                        }   else   if   ((obj.type.toLowerCase()   !=   "button ")   &&   (obj.type.toLowerCase()   !=   "reset "))   {//清空非按钮和非重置   的所有值  
                                                obj.value   =   jsonObj[key];  
                                        }  
                                }  
                        }  
                }  
        }   catch(e)   {  
                alert( "客户端绑定错误:
"   +   "URL:
"   +   this._curPage   +   "
message:
"   +   e.message);  
        }  
};

确实好像有这问题的,谢谢分享

你这个问题只要的就是要实现模拟submit()
IE下的模拟方法:
var evt = document.createEventObject();
evt.keyCode = 13;
document.getElementById('NSRLSH').fireEvent(evt);

不错

mark!

弄不大明白

good

学习了.


某网页上的文本输入框,源码如下:
文本框源码:
<INPUT class="" id=NSRLSH onkeydown=eapObjsMgr.getEAPObj(this).enterToTab()style="BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:1px;WIDTH:259px;BORDER-RIGHT-WIDTH:1px"maxlength=20 name=string(NSRLSH) JSObjName="Taxpayer" prompt="纳税人流水号" onAffirm="btnClick('changePage')' model="SWJG" isnullable="flase" isUniEAP="true">

问题:怎么自动填写数据并模拟一下回车

原来这个问题在这儿发过,有人这样回复,不过这东西不是VB的,有点儿象DELPHI或PB
//输入数据
NSRLSH.text="abc";
//模拟回车
NSRLSH.focus();
var wsh = WScript.CreateObject("WScript.Shell");
wsh.SendKeys("{ENTER}");
wsh=null;
VB应

内部网络的页面啊,互联网看不到的

这么写中不?
Dim vDoc, vTag, i
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
if vtag.name="string(NSRLSH)" Then
vTag.value="123321"
SendKeys "{ENter}"
vTag.Click
end if

我写的不行啊,点了没反映

参看下面贴子,将相关的需要修改的点击语句改为赋值语句,getElementById 根据需要改为getElementsByName

JS写的网页,怎么写点击的语句

我想得太简单了,我只想点击后worksheets.sheet(1).clees(i,2).copy 然后past,写时我才发觉悟,还要先找到句柄才能粘贴,真的不如将getElementsByName替换下getElementById

学习

xue  xi 

看看怎么样

感觉非常幸运哦,我提的总是也能被推荐!!
哈哈哈,大笑中

不要把嘴巴都笑歪了啊

/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
    try {
        var form = document.forms[formName];
        for (var key in jsonObj) {
            var obj = document.forms[formName].document.getElementById(key);
            if (obj) {
                if (obj.tagName.toLowerCase() == "select") {  //是否是 下拉框
                    obj.value = jsonObj[key];
                } else if (obj.tagName.toLowerCase() == "textarea") { //清空  textarea 的 value
                    obj.value = jsonObj[key];
                } else if (obj.tagName.toLowerCase() == "input") { //如果是input标签
                    if (obj.type.toLowerCase() == "checkbox" || obj.type.toLowerCase() == "radio") { //把单选,复选置于非选中状态
                        var bCheck = jsonObj[key];
                        if ((bCheck == 1)) {
                            obj.checked = true;
                        } else {
                            obj.checked = false;
                        }
                        bCheck = null;
                    } else if ((obj.type.toLowerCase() != "button") && (obj.type.toLowerCase() != "reset")) {//清空非按钮和非重置 的所有值
                        obj.value = jsonObj[key];
                    }
                }
            }
        }
    } catch(e) {
        alert("客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
    }
};

不知道能帮你不

mark

帮你顶人气!

不知道你在做什么呢!自动填写数据不就是赋值吗?回车不就是 submit() 一下吗?

学习

/**  
*   解析JSON的数据格式,并把数据绑定到显示控件  
*   strJson   基本格式为控件NAME:值  
*   @param   formName   json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致  
*/  
Tools.prototype.bindFormData   =   function(formName,   jsonObj)   {  
        try   {  
                var   form   =   document.forms[formName];  
                for   (var   key   in   jsonObj)   {  
                        var   obj   =   document.forms[formName].document.getElementById(key);  
                        if   (obj)   {  
                                if   (obj.tagName.toLowerCase()   ==   "select ")   {     //是否是   下拉框  
                                        obj.value   =   jsonObj[key];  
                                }   else   if   (obj.tagName.toLowerCase()   ==   "textarea ")   {   //清空     textarea   的   value  
                                        obj.value   =   jsonObj[key];  
                                }   else   if   (obj.tagName.toLowerCase()   ==   "input ")   {   //如果是input标签  
                                        if   (obj.type.toLowerCase()   ==   "checkbox "   ||   obj.type.toLowerCase()   ==   "radio ")   {   //把单选,复选置于非选中状态  
                                                var   bCheck   =   jsonObj[key];  
                                                if   ((bCheck   ==   1))   {  
                                                        obj.checked   =   true;  
                                                }   else   {  
                                                        obj.checked   =   false;  
                                                }  
                                                bCheck   =   null;  
                                        }   else   if   ((obj.type.toLowerCase()   !=   "button ")   &&   (obj.type.toLowerCase()   !=   "reset "))   {//清空非按钮和非重置   的所有值  
                                                obj.value   =   jsonObj[key];  
                                        }  
                                }  
                        }  
                }  
        }   catch(e)   {  
                alert( "客户端绑定错误:
"   +   "URL:
"   +   this._curPage   +   "
message:
"   +   e.message);  
        }  
};

确实好像有这问题的,谢谢分享


某网页上的文本输入框,源码如下:
文本框源码:
<INPUT class="" id=NSRLSH onkeydown=eapObjsMgr.getEAPObj(this).enterToTab()style="BORDER-TOP-WIDTH:1px;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:1px;WIDTH:259px;BORDER-RIGHT-WIDTH:1px"maxlength=20 name=string(NSRLSH) JSObjName="Taxpayer" prompt="纳税人流水号" onAffirm="btnClick('changePage')' model="SWJG" isnullable="flase" isUniEAP="true">

问题:怎么自动填写数据并模拟一下回车

原来这个问题在这儿发过,有人这样回复,不过这东西不是VB的,有点儿象DELPHI或PB
//输入数据
NSRLSH.text="abc";
//模拟回车
NSRLSH.focus();
var wsh = WScript.CreateObject("WScript.Shell");
wsh.SendKeys("{ENTER}");
wsh=null;
VB应

内部网络的页面啊,互联网看不到的

这么写中不?
Dim vDoc, vTag, i
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase(vDoc.All(i).tagName) = "INPUT" Then
Set vTag = vDoc.All(i)
if vtag.name="string(NSRLSH)" Then
vTag.value="123321"
SendKeys "{ENter}"
vTag.Click
end if

我写的不行啊,点了没反映

参看下面贴子,将相关的需要修改的点击语句改为赋值语句,getElementById 根据需要改为getElementsByName

JS写的网页,怎么写点击的语句

我想得太简单了,我只想点击后worksheets.sheet(1).clees(i,2).copy 然后past,写时我才发觉悟,还要先找到句柄才能粘贴,真的不如将getElementsByName替换下getElementById

学习

xue  xi 

看看怎么样

感觉非常幸运哦,我提的总是也能被推荐!!
哈哈哈,大笑中

不要把嘴巴都笑歪了啊

/**
* 解析JSON的数据格式,并把数据绑定到显示控件
* strJson 基本格式为控件NAME:值
* @param formName json格式的对象,注意显示控件的NAME要与JSON的键名要保持一致
*/
Tools.prototype.bindFormData = function(formName, jsonObj) {
    try {
        var form = document.forms[formName];
        for (var key in jsonObj) {
            var obj = document.forms[formName].document.getElementById(key);
            if (obj) {
                if (obj.tagName.toLowerCase() == "select") {  //是否是 下拉框
                    obj.value = jsonObj[key];
                } else if (obj.tagName.toLowerCase() == "textarea") { //清空  textarea 的 value
                    obj.value = jsonObj[key];
                } else if (obj.tagName.toLowerCase() == "input") { //如果是input标签
                    if (obj.type.toLowerCase() == "checkbox" || obj.type.toLowerCase() == "radio") { //把单选,复选置于非选中状态
                        var bCheck = jsonObj[key];
                        if ((bCheck == 1)) {
                            obj.checked = true;
                        } else {
                            obj.checked = false;
                        }
                        bCheck = null;
                    } else if ((obj.type.toLowerCase() != "button") && (obj.type.toLowerCase() != "reset")) {//清空非按钮和非重置 的所有值
                        obj.value = jsonObj[key];
                    }
                }
            }
        }
    } catch(e) {
        alert("客户端绑定错误:
" + "URL:
" + this._curPage + "
message:
" + e.message);
    }
};

不知道能帮你不


南宁新时空网 http://www.nn-sky.com/

用户名:一天一个梦 密码:000000

你登陆进去,,就有一个3级联动,,,城市 城区 片区

有哪位高手,,请帮帮忙,,谢谢 了,,,

菜鸟只有20分,,5555555.。。。。

孩子又在这里了啊

3级联动,无非就是要等待联动的脚本(或从服务器上获取)运行完成后,再进行选择
如果你能搜索到我以前回答过的,应该可以考虑一下

我晕,登录有图片验证,俺干不了!!
我想问下什么是三级联动?

引用 4 楼 zydscaline 的回复:
我晕,登录有图片验证,俺干不了!!
我想问下什么是三级联动?

就是说,,必须要选择 “城市” 之后,,才能选择 “城区” ,,,选择 区域 之后才能选择 “片区”

我只有20分,,,55555,,,有人不嫌分数低而帮助我吗????

继续等待高手的出现,,,