VB程序员博客

VB程序开发

制作好安装包后,在重装系统的干净电脑上安装软件没有问题。可是同样的安装包装到同事的电脑上就出问题了。
报错激活VB UserControl控件失败,这是怎么回事,怎么解决?哥帮顶一下你打包不全的原因吧
可能有些.dll文件没有打到包里
在你同事电脑上也装个vb试下等了好久,终于出现了救星

这个问题很奇怪,同事电脑上也装了VB,报这个错,我的电脑却没有报错。我怀疑是控件版本的问题。
但又不知道从何入手

那如何查看控件的许可证号呢try SetupFactory帮顶下~


怎样能求一个文件夹的修改时间,注意是文件夹哈.不是文件.VB6的环境Private Sub Command1_Click()
  MsgBox ChkFolder("c:music")
End Sub

Public Function ChkFolder(FolNm$) As Date
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(FolNm)
  ChkFolder = f.DateLastModified
End Function
可以用 API 完成:
FindFirstFile()
FindClose()
FileTimeToSystemTime()
<
哦.我先试试哈.谢谢楼上的几位.

晕没看到,最后一个答案.我就说filedatetime怎么没人提来着…..filedatetime 是正解

惭愧, 竟然连它我也搞忘了…..呵呵,老了嘛!记忆减退很正常,别往心里去谢谢大家了哈.


我有一个TEXT,里面放的是XXXX-XX-XX,然后我把它转为DATE型
DATE = CDATE(text)
然后我想拿数据库里的一个日期类型的数据来和它比较,该怎么调用呢?
rs.Open "select * from 出差时间表 where 工号='" & CmoCode.Text & "' and 出差开始时间 = '" & Date & "'", conn, adOpenKeyset, adLockOptimistic
红色报错说类型不匹配,然后我把单引号给去掉了。。变成这样rs.Open "select * from 出差时间表 where 工号='" & CmoCode.Text & "' and 出差开始时间 = " & Date & "", conn, adOpenKeyset, adLockOptimistic
结果是查不到数据。。。但是数据库里有这条记录
请问到底该怎么实现呢??

哦解决了再次谢谢vbman2003的帮助!


请问如果我在程序里用了一个文本框,在其上显示了一个数据库里的Short Time类型的时间数据,然后我想用个判断,判断这个文本框中的日期是否和数据库中的日期相同,那该怎么比较??我程序里的DEBUG是说抽取出来的数据类型不一致。。。

得到两个时间后进行判断

引用 1 楼 clear_zero 的回复:
datediff函数试试看

高手,你的意思是不是用这个函数来比较后如果有差值就说明不同??可是这个两个类型是不一样的,是否可以呢?


我用
Date=Cdate(“2099-101”)
来修改系统时间,可是总出现瑞星防御提示用户某个程序在修改时间
我不想让这个提示出现,请问有什么办法?
先谢谢大家了

拿炸药包炸掉瑞星公司


这个光荣的任务交给你了
有没有什么方法修改时间时不出现这个?

貌似VB里好像不能这么直接去更改系统时间吧。。。Date在vb程序可以理解为只读,只能读而不能写。

这是瑞星防御造成的,把它保护时间功能关了就行
如果要用程序实现,可以用findwindow找到提示窗体,然后通过sendmessage发送消息
或者通过sendkey

谢谢了
那用findwindow怎么找到提示窗体呢?

别费心了,瑞星的防护能力不是那么差的

瑞星就是这么个东西,,对于一般的对手,它都不放在眼里,遇上高手,它就是一堆菜,
哎~~~~~~~~

拿炸药包炸掉瑞星公司
=========================

  哈哈~ 同感 . 发帖人没看出了你的意思.  哈哈~

发帖人问这个目的是要盗窃别人电脑信息?  正常的系统事件位置上要修改系统事件是一个木马病毒的操作部分.

所以, 防止这个危险行为,防火墙为了电脑安全积极防御的措施.

我不想干坏事
是别人写的代码,我只是维护
修改系统时间只是想建立一个文件的时间不是现在这个时间
执行完还会再改过来的
真的没有办法了吗?

关闭瑞星防御

呵呵,总不能让用户使用软件时就关闭瑞星防御吧
反正我的目的是使创建的文件的创建日期和修改日期不是当前的日期
所以我跳过改系统日期
直接修改文件的日期属性
算是解决了,不过还是谢谢大家了,每人都有分
虽然不多,但请笑纳!


想问一下:
date=Cdate("2099-10-01")
Shell "cmd.exe /c date 2099-10-01", vbHide
这两个都是修改时间的,请问两者有什么区别?
希望高手不吝赐教!谢谢了!

前者是内部修改时间,也就是你的程序自己修改时间
后者是通过运行cmd.exe并传递参数修改。

楼上正解
PS:一个功能如果能用内部指令处理圆满的话, 就尽量不要用外部程序来处理,没效率又容易产生意外…

谢谢了,怪不得我用
Shell "cmd.exe /c date 2099-10-01", vbHide
来修改,有时成功有时不行


怎么查询上一次(就一次)的消费记录,

比如说,我昨天或者前天,大前天去消费了,信息被记录数据库,怎么才能查出离现在时间最近的一次呢???

请指点。。。

改正:
select top 1 * from your table order by timefields desc

感谢你。以后还有很多的问题,开请多多关照


下面的代码是只要系统时间一到19:30就执行下面程序!我想让中间的代码从19:30开始第一次执行 每隔5分钟执行一次 该怎么做?????先谢过各位老大了!!
Private Sub Timer1_Timer()
    Label1.Caption = Time
   
    Dim tag_agin, tag_end As Date
    tag_agin = #7:30:00 PM#
    tag_end = #9:30:00 PM#
   
    '19:30分执行
    If Time = tag_agin Then
       
      '定义变量
        Dim i As Long
       
        '连接服务器sql数据库并构造sql语句
        Dim s_Conn As New ADODB.Connection
        Dim rss As New ADODB.Recordset
        Dim s_Sql As String
        s_Conn.CursorLocation = adUseServer
        '连接SQL数据库
        s_Conn.ConnectionString = "driver={sql server};server=61.233.62.174;uid=sa;pwd=questioncexovjai;Database=kq"
        s_Conn.ConnectionTimeout = 50
        s_Conn.Open
        '构造mssql sql语句
        s_Sql = "Select * From sjinfo"
       
        '连接服务器sql数据库并构造sql删除语句
        Dim s1_Conn As New ADODB.Connection
        Dim rss1 As New ADODB.Recordset
        Dim s1_Sql As String
        Dim rq As Date
        rq = Format(Now, "YYYY-MM-DD")
        s1_Conn.CursorLocation = adUseServer
        '连接SQL数据库
        s1_Conn.ConnectionString = "driver={sql server};server=61.233.62.174;uid=sa;pwd=questioncexovjai;Database=kq"
        s1_Conn.ConnectionTimeout = 50
        s1_Conn.Open
        '构造mssql sql语句
        s1_Sql = "Select * From sjinfo where sjdate='" & rq & "'"
        rss1.Open s1_Sql, s1_Conn, 1, 3     
       
        '连接access考勤数据库并构造sql语句
        Dim a_Conn As New ADODB.Connection
        Dim rsa As New ADODB.Recordset
        Dim a_Sql As String
        a_Conn.CursorLocation = adUseClient
        '连接access数据库
        a_Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:万象2004 935免验证版2004rec.mdb;Persist Security Info=False;Jet OLEDB:Database Password=zhrmghg1949jgqz"
        'a_Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:万象2004 935免验证版sccs.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123456"
        a_Conn.Open
        a_Sql = "Select * From tLogs "
        rsa.Open a_Sql, a_Conn, adOpenStatic, adLockOptimistic     
       
        '删除sql服务器当天所有记录
        Do While Not rss1.EOF
            rss1.Delete
            rss1.MoveNext
        Loop
        rss1.Close
        s1_Conn.Close   
       
        '添加考勤到服务器
        For i = 1 To rsa.RecordCount
            If Format(rsa("dtTime1"), "YYYY-M-D") = Date$ Then
                If Format(rsa("dtTime1"), "HH:MM:SS AM/PM") < #7:30:00 PM# And (IsNull(rsa("dtTime2")) Or Format(rsa("dtTime2"), "HH:MM:SS AM/PM") > #7:30:00 PM#) Then
                    rss.Open s_Sql, s_Conn, 1, 3
                    rss.AddNew
                    rss("sjkid") = rsa("sCardID")
                    rss("sjtime") = "19:30:00"
                    rss("downtime") = Format(rsa("dtTime2"), "HH:MM:SS")
                    rss("sjdate") = Format(rsa("dtTime1"), "YYYY-M-D")
                    rss("roomname") = "电算中心"
                    rss("stuname") = rsa("sName")
                    rss.Update
                    rss.Close
                    rsa.MoveNext
                ElseIf Format(rsa("dtTime1"), "HH:MM:SS AM/PM") >= #7:30:00 PM# And Format(rsa("dtTime1"), "HH:MM:SS AM/PM") < #9:30:00 PM# Then
                    rss.Open s_Sql, s_Conn, 1, 3
                    rss.AddNew
                    rss("sjkid") = rsa("sCardID")
                    rss("sjtime") = Format(rsa("dtTime1"), "HH:MM:SS")
                    rss("downtime") = Format(rsa("dtTime2"), "HH:MM:SS")
                    rss("sjdate") = Format(rsa("dtTime1"), "YYYY-M-D")
                    rss("roomname") = "电算中心"
                    rss("stuname") = rsa("sName")
                    rss.Update
                    rss.Close
                    rsa.MoveNext
                End If
            End If
        Next i
        s_Conn.Close
        a_Conn.Close
        'rsa.Close
        Set rsa = Nothing
       
        '连接服务器sql数据库并构造sql更新班级语句
        Dim s2_Conn As New ADODB.Connection
        Dim rss2 As New ADODB.Recordset
        Dim s2_Sql As String
        Dim rq1 As Date
        rq1 = Format(Now, "YYYY-MM-DD")
        s2_Conn.CursorLocation = adUseServer
        '连接SQL数据库
        s2_Conn.ConnectionString = "driver={sql server};server=61.233.62.174;uid=sa;pwd=questioncexovjai;Database=kq"
        s2_Conn.ConnectionTimeout = 50
        s2_Conn.Open
        '构造mssql sql语句
        s2_Sql = "Select * From sjinfo where sjdate='" & rq1 & "'"
        rss2.Open s2_Sql, s2_Conn, 1, 3
       
        '连接access班级数据库
        Dim c_Conn As New ADODB.Connection
        Dim rsc As New ADODB.Recordset
        Dim c_Sql As String
        c_Conn.CursorLocation = adUseClient
        '连接access班级数据库
        c_Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:万象2004 935免验证版2004mem.mdb;Persist Security Info=False;Jet OLEDB:Database Password=zhrmghg1949jgqz"
        c_Conn.Open
       
        '更新班级专业名称到服务器
        'MsgBox (s2_Sql)
        'MsgBox (rss2.RecordCount)
        For j = 1 To rss2.RecordCount
            c_Sql = "select sMemo from tUsers where sCardId='" & rss2("sjkid") & "'"
            rsc.Open c_Sql, c_Conn, adOpenStatic, adLockOptimistic
            rss2("stuclass") = rsc("sMemo")
            rss2.Update
            rsc.Close
            rss2.MoveNext
        Next j
        rss2.Close
        s2_Conn.Close
        c_Conn.Close
    End If   
End Sub


有两个程序,一个是主程序,另一个是   ActiveX   Exe   的部件程序.

当我主程序调用部件程序时会出现两个进程.为什么过一段时间后部件程序会自动消失?

在主程序中并没有释放它“

我的错误信息有的是被隐藏了,可工程太大了。找起来很困难“
在主程序中有一个全局对象调用着   部件程序   .如果这么一来附件程序应该是不会被卸载才对“

有没有其他原因可以导致???

我再补充一些:

我的部件程序因为是   ActiveXExe   的.我已经设置成一个对象对应一个线程,而且都是以后期绑定来创建对象的.

在查看器中确定我的程序已经创建多个线程了。

但是内部构造复杂,彼此相互调用变量,并没有设置什么临界区,不知道   DCOM   有没有帮我们处理好这些,会不会是这个导致?

请高手们帮忙“顶帖也算帮忙呀“`

我也碰到了这个问题,还没解决,我在Activex.exe中的每个函数、方法加了错误捕获on   error   goto   ,按道理不会出错自动退出的,可是运行一段时间后进程中Activex.exe就不见了。

这个简单啊,网上搜一下就得到答案了.


为什么程序运行一段时间后会自动消失?连错误都不报~

起码也要有个 "不发送 "对话框出来`

你的程序如果狂消耗内存的话,也会有这种现象发生的
或者你的程序中没有对错误进行捕捉!

分析在理

on   error   resume   next   使用过多的结果


专题:

栏目: