VB程序员博客
08 1st, 2010
我在程序一开始的地方设了一个连接数据库的输入窗口,要求输入服务器IP、SQLID、SQL密码。第一次输入正确后,关闭程序。然后再打开时,如果什么都不输,直接点确定,竟然也能连接成功!这是怎么回事?难道它有记忆功能!应该怎么改?
我的代码是这样的(Command4是确定按钮):
Private Sub Command4_Click()
On Error GoTo 10
con.ConnectionString = "driver={sql server};server=" & Text1 & ";uid=" & Text2 & ";pwd=" & Text3 & ";database=Ma_Lab"
con.ConnectionTimeout = 5
con.Open
Me.Hide
MsgBox "连接数据库成功!", , "消息"
Frmlogin.Show
Exit Sub
10 MsgBox "连接数据库失败!", , "错误"
End Sub
对象con是否有con.disconncet或con.close等?选在End sub这之前加上。
你关闭程序时,没有unload所有的窗口
谢谢!
07 1st, 2010
网页部分源码:
<td>
<select id="_province" name="_province"size=1 onchange="fill(dist, province[this.selectedIndex].dist);">
<option value=0> 请选择 </option>
</select>
<select id="dist" name="dist" size=1 >
<option value=0> 请选择 </option>
</select>
</td>
SCRIPT部分源码:
<script>
function Addr(name) {
this.name = name;
this.toString = function() {
return this.name;
}
}
function createAreaArrayByList(names) {
list = names.split(' ');
var array = new Array();
for(i in list) {
//alert( list[i] );
if(trim ( list[i] ) != '') {// 忽略全是空格的数据
array.push ( new Addr( trim( list[i] ) ) );
}
}
return array;
}
function trim(str){
return str.replace(/(^s*)|(s*$)/g, "");
}
// 省市二级的数据结构!!!
// 省/直辖市定义
var province = createAreaArrayByList("请选择 北京市 上海市 天津市 重庆市 海南省 河北省 山西省 内蒙古自治区 辽宁省 吉林省 黑龙江省 江苏省 浙江省 安徽省 福建省 江西省 山东省 河南省 湖北省 湖南省 广东省 广西壮族自治区 四川省 贵州省 云南省 西藏自治区 陕西省 甘肃省 青海省 宁夏回族自治区 新疆维吾尔自治区 香港特别行政区 澳门特别行政区 台湾 国外");// 多个省请以空格隔开
province[0].dist = createAreaArrayByList("请选择");
//北京市
province[1].dist = createAreaArrayByList("东城区 西城区 崇文区 宣武区 朝阳区 丰台区 石景山区 海淀区 门头沟区 房山区 通州区 顺义区 昌平区 大兴区 怀柔区 平谷区 密云县 延庆县");
// 上海市
<中间省略……….>
province[35].dist = createAreaArrayByList("国外");
</script>
我想通过WEBBROWSER实现自动选择省-市的功能,在网上查了好欠都无法解决,还请各位大大帮忙!
解决后有加分!
哎。。发个贴,连个看的人都没有,,CSDN。。。。。。
你贴这个没用,最好发网址,你右击得到的源代码参考价值不大
终于有个看的人了,虽然问题没有解决。。
我想通过WEBBROWSER实现自动选择省-市的功能,在网上查了好欠都无法解决,还请各位大大帮忙!
给个思路吧,肯定能解决
1、如果你用的是WEBBROWSER,那么你可以获得源代码
2、既然有源代码你什么都能搞,你可以把你想要的那个选项增加一个select就ok了
3、然后将代码回写到webbrowser中即可
昨天晚上自己已经解决了。。。。。
跟五楼一样,只不过写法不太一样而已。。
4楼的兄弟思路也不错,给了五分,虽说问题是自己解决的,不过还是要感谢4楼5楼的兄弟们,感谢!!!
我顶一下 学习
dddddddddddddddddddd
05 7th, 2010
各位大侠,请帮帮我啊,
问题是这样的:有个进程为1.exe的软件在打开的时候,它访问的是ipA的1433端口,如何在不修改程序内部代码的情况下,使其访问地址由ipA的1433端口转向到ipB的1433端口,就是一旦它访问ipA,就自动转向了ipB,类似于ip转发,不在路由器里东手脚,vb可以实现吗,可以提供下源码吗。
修改host文件我试了,行不通只对IE有效。各位能给点提示吗?人民币也可以
我一直在F5本页
高手都到哪里去了
05 4th, 2010
sql数据库中设置一个表,ID项(自动递增),后面还有一列“资产编号”格式是类似这样的 ZJ0001、ZJ0002这样自动递增。现在当我删除其中一行时,如14行,表里的ID项顺序就变了,比如现在数据已经到了310行,也即资产编号是ZJ0310,而新增的310行就跑到13行后面去了,也就是刚才删除的14行的位置,这样我程序新增资产的时候编号就不能自动递增了,贴下我的代码:
SQL = "select * from jsj "
Rs.Open SQL, conn, 1, 1
If Rs.RecordCount > 0 Then
Rs.MoveLast
bh = Right(Trim(Rs.Fields("资产编号")), 4) + 1
Text1= "ZJ" & Format(bh, "0000")
Else
Text1= "ZJ" & "0001"
End If
text1里显示的是资产编号,当我新增一资产,每次取最后一条记录,然后资产编号就会自动+1递增。现在因为ID项的顺序变了,想把它改为读取最大一个资产编号,然后自动递增,这样应该就不会出现上面编号不能自动递增的问题了吧。请问该段程序该如何改呢 ,谢谢!
自动递增编号在删除时是不能重排的。
如果你希望编码始终连续,就必须用代码处理。
谢谢楼上的 貌似用你这个方法好像可以的
还有每次读取表里资产编号最大的记录,程序改如何写呢?
id如果是最大的话,那你的资产编号也应该是最大的,SQL = "select * from jsj order by id",最后一条记录资产编号也应该是最大的
升序排列:Order By ASC
降序排解:Order By Desc
谢谢各位 结贴
04 5th, 2010
自动编号有数据后,我要把数据库的记录全删除,那它的编号怎样才会再从1开始?
Truncate Table tablename
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
清空的时候使用如下语句:
TRUNCATE TABLE TableName
我上次也遇到过这个问题
就是用TRUNCATE TABLE TableName 这个解决的
楼上的全对
这好像与VB没关系吧,与数据库有关
不知道你是啥数据库,应该不是ORACLE
我记得ORACLE里是没自动编号的字段,只有序列
03 1st, 2010
我想问下,access在设计表的时候有自动编号的功能,但是我要用VB+access做系统,access的自动编号功能有效么?如果我用VB判断表中ID的最大值然后循环+1该怎么写?怎么读最大值?
我想问下,access在设计表的时候有自动编号的功能,但是我要用VB+access做系统,
access的自动编号功能有效么?
有效
如果我用VB判断表中ID的最大值然后循环+1该怎么写?
看不懂,什么循环+1?
记录的多少不是有ID的大小来判断的,是用rst.RecordCount 来判断的。
怎么读最大值?
答:select top 1 ID from 你的表名 order by desc
执行以上SQL语句后rst(0)即的值即ID最大值。
1 有
2 插入的时候不用设,插入之后用SELECT @@Identity读,参考http://support.microsoft.com/kb/232144
<
数据库的自动ID本身就会在插入后+1,1楼的降序就得到了ID值,你再以该ID为条件操作不就行了?
还有就是手动实现自动编号,大概思路如下:
设计一个表如:BhFlag,字段:MaxBh(文本),赋一初值如:"20100417001"(可以在程序中读写设置该值)。当插入时直接从表BhFlag中读取MaxBh+1,插入成功后再更新表BhFlag中的MaxBh值=ID,这样每次读取的记录数只有一条,而不用从整个被插入的表中查询得到最大ID
02 5th, 2010
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发给我好了.
好吧.
给你了
分给你啦/赶紧的发来
01 2nd, 2010
建了一个表“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字段名称] & "'")
12 30th, 2009
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 表单的所有内容…但是备注型的比较长..看不到..能做到自动适应不
参考
也就是判断数据源字段的长度,再定义datagrid单元格的宽度。
12 20th, 2009
各位大哥,我做了个小工具,想用vb实现自动更新,但是我听说urldownloadtofile容易被杀毒软件误杀,那么,我只能用其他控件来实现这个功能了么?请有经验的大哥帮下忙好么。
更新什么?
和urldownloadtofile有关系?
我想用urldownloadtofile来下载,然后自动对比文件并更新。
可以有很多种方法下载啊~~
<
<
是这样的,我的自动更新是从我的站点下载我写的那个新的程序,以前的要被更新。
<
额。。。不好意思啊,我才学没多久,对win32api不熟,嘿嘿
http://blog.csdn.net/CHRL/archive/2009/12/19/5036640.aspx
<
局域网内的自动更新有做过,Internet的没有。