Pregunta

I am new to VBScript and can't figure out why I'm getting an Object Required error with my code. It's very simple right now, I've just begun it:

<%
set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim dateandtime
On Error Resume Next
set dateandtime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")
If Err <> 0 Then
  ' File operation(s) failed, handle the error
  response.write(Err.Description)
End If
%>

Why am I not able to set the DateTime? I've set the FileSystemObject for use later in the code FYI. I'm just putting it all in here so you see exactly what I have. I figure it's a simple syntax thing but I can't seem to find the answer anywhere. Thanks for your help!

¿Fue útil?

Solución

The first mistake is to use Set when assigning a non-object to a variable. The last entry in the 'Related' list “Object required” when using Set in an assignment deals with it.

>> Set dt = "a string"
>>
Error Number:       424
Error Description:  Object required [because Set wants an object to assign]

No Set, no problem:

>> dt = "a string"
>> WScript.Echo dt
>>
a string

Removing the Set will reveal the next problem: Unless you defined a suitable class and an instance named 'DateTime' of your own, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") will fail with the same error 424.

>> dt = Nix.Now.ToString("")
>>
Error Number:       424
Error Description:  Object required [to use its .Now member]

Do a search here for ways to format a date in VBScript. (First hit for "[vbscript] format date": date format in VBS)

The () in the .Write call should be removed; they are not parameter list (), but 'pass me per value' (). See this answer and follow the link to Eric Lippert's article.

Otros consejos

What about crear your code and just do this?

<%
    dateandtime = now()

    response.write dateandtime
%>

To use setyou need a Object.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top