PC Review


Reply
Thread Tools Rate Thread

Data type issues adding data from vbscript

 
 
Chris
Guest
Posts: n/a
 
      28th Oct 2008
Hi

I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
to this excel spreadsheet. This works fine. The problem I have, are the data
types. I need to add the current date to this excel spreadsheet. But
regardless of the column format in the excel spreadsheet, the added values
have "Standard" as data type. The pre defined data type in the excel
spreadsheet column (type = date) seems to be ignored. Also changing the data
type after the import does not solve the problem.

Only switching to the edit mode of an excel spreadsheet field solves the
problem. After adding a date value, the value is left aligned in the excel
spreadsheet field. After switching to the edit mode, the value is right
aligned in the excel spreadsheet field and the data type changes to date.

vbscript:
dtDate = Date
strFileName = "c:\temp\logonlog.xlsx"
strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
strDataSource = "Data Source="+ strfilename
strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
Set objExConnection = CreateObject("ADODB.Connection")
objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend

' Without converting to string, the code generates a type mismatch error
objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
+ "')"
objExConnection.close()

Special thanks for your support.
Chris



 
Reply With Quote
 
 
 
 
Joel
Guest
Posts: n/a
 
      28th Oct 2008
CSTR add a space infront of the string. The space is a place holder for a
plus or minus sign. I think the extra space is why the data is left aligned
in the cell. Instead of cstr() use format()

from
cstr(dtDate)
to
format(dtDate,"MM-DD-YY")


"Chris" wrote:

> Hi
>
> I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> to this excel spreadsheet. This works fine. The problem I have, are the data
> types. I need to add the current date to this excel spreadsheet. But
> regardless of the column format in the excel spreadsheet, the added values
> have "Standard" as data type. The pre defined data type in the excel
> spreadsheet column (type = date) seems to be ignored. Also changing the data
> type after the import does not solve the problem.
>
> Only switching to the edit mode of an excel spreadsheet field solves the
> problem. After adding a date value, the value is left aligned in the excel
> spreadsheet field. After switching to the edit mode, the value is right
> aligned in the excel spreadsheet field and the data type changes to date.
>
> vbscript:
> dtDate = Date
> strFileName = "c:\temp\logonlog.xlsx"
> strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> strDataSource = "Data Source="+ strfilename
> strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> Set objExConnection = CreateObject("ADODB.Connection")
> objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
>
> ' Without converting to string, the code generates a type mismatch error
> objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> + "')"
> objExConnection.close()
>
> Special thanks for your support.
> Chris
>
>
>

 
Reply With Quote
 
Chris
Guest
Posts: n/a
 
      28th Oct 2008
The format function gives me a type mismatch error. So, I tried the
FormatDateTime function, without success and also a Trim does not solve the
problem. Browsing the web, I found something about an hidden apostrophe. Do
you know anything about this?

"Joel" wrote:

> CSTR add a space infront of the string. The space is a place holder for a
> plus or minus sign. I think the extra space is why the data is left aligned
> in the cell. Instead of cstr() use format()
>
> from
> cstr(dtDate)
> to
> format(dtDate,"MM-DD-YY")
>
>
> "Chris" wrote:
>
> > Hi
> >
> > I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> > to this excel spreadsheet. This works fine. The problem I have, are the data
> > types. I need to add the current date to this excel spreadsheet. But
> > regardless of the column format in the excel spreadsheet, the added values
> > have "Standard" as data type. The pre defined data type in the excel
> > spreadsheet column (type = date) seems to be ignored. Also changing the data
> > type after the import does not solve the problem.
> >
> > Only switching to the edit mode of an excel spreadsheet field solves the
> > problem. After adding a date value, the value is left aligned in the excel
> > spreadsheet field. After switching to the edit mode, the value is right
> > aligned in the excel spreadsheet field and the data type changes to date.
> >
> > vbscript:
> > dtDate = Date
> > strFileName = "c:\temp\logonlog.xlsx"
> > strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> > strDataSource = "Data Source="+ strfilename
> > strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> > Set objExConnection = CreateObject("ADODB.Connection")
> > objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
> >
> > ' Without converting to string, the code generates a type mismatch error
> > objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> > + "')"
> > objExConnection.close()
> >
> > Special thanks for your support.
> > Chris
> >
> >
> >

 
Reply With Quote
 
Joel
Guest
Posts: n/a
 
      28th Oct 2008
I don't know anything about the hidden apoxtrophe. The dat is not in
Microsoft Werial date so DateValue need to be used

format(DateValue(dtDate),"MM-DD-YY")

You may want to see the value so you can figure out what is wrong
msgbox(dtDate)

"Chris" wrote:

> The format function gives me a type mismatch error. So, I tried the
> FormatDateTime function, without success and also a Trim does not solve the
> problem. Browsing the web, I found something about an hidden apostrophe. Do
> you know anything about this?
>
> "Joel" wrote:
>
> > CSTR add a space infront of the string. The space is a place holder for a
> > plus or minus sign. I think the extra space is why the data is left aligned
> > in the cell. Instead of cstr() use format()
> >
> > from
> > cstr(dtDate)
> > to
> > format(dtDate,"MM-DD-YY")
> >
> >
> > "Chris" wrote:
> >
> > > Hi
> > >
> > > I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> > > to this excel spreadsheet. This works fine. The problem I have, are the data
> > > types. I need to add the current date to this excel spreadsheet. But
> > > regardless of the column format in the excel spreadsheet, the added values
> > > have "Standard" as data type. The pre defined data type in the excel
> > > spreadsheet column (type = date) seems to be ignored. Also changing the data
> > > type after the import does not solve the problem.
> > >
> > > Only switching to the edit mode of an excel spreadsheet field solves the
> > > problem. After adding a date value, the value is left aligned in the excel
> > > spreadsheet field. After switching to the edit mode, the value is right
> > > aligned in the excel spreadsheet field and the data type changes to date.
> > >
> > > vbscript:
> > > dtDate = Date
> > > strFileName = "c:\temp\logonlog.xlsx"
> > > strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> > > strDataSource = "Data Source="+ strfilename
> > > strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> > > Set objExConnection = CreateObject("ADODB.Connection")
> > > objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
> > >
> > > ' Without converting to string, the code generates a type mismatch error
> > > objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> > > + "')"
> > > objExConnection.close()
> > >
> > > Special thanks for your support.
> > > Chris
> > >
> > >
> > >

 
Reply With Quote
 
Chris
Guest
Posts: n/a
 
      28th Oct 2008
The format function gives me a type mismatch error anymore. Please excuse me,
I am not adept in programming, but I can't find the format function at msdn
vbscript language reference. So I tried the FormatDateTime function again.
This function works without converting to string, but in excel, I have the
problem again.

"Joel" wrote:

> I don't know anything about the hidden apoxtrophe. The dat is not in
> Microsoft Werial date so DateValue need to be used
>
> format(DateValue(dtDate),"MM-DD-YY")
>
> You may want to see the value so you can figure out what is wrong
> msgbox(dtDate)
>
> "Chris" wrote:
>
> > The format function gives me a type mismatch error. So, I tried the
> > FormatDateTime function, without success and also a Trim does not solve the
> > problem. Browsing the web, I found something about an hidden apostrophe. Do
> > you know anything about this?
> >
> > "Joel" wrote:
> >
> > > CSTR add a space infront of the string. The space is a place holder for a
> > > plus or minus sign. I think the extra space is why the data is left aligned
> > > in the cell. Instead of cstr() use format()
> > >
> > > from
> > > cstr(dtDate)
> > > to
> > > format(dtDate,"MM-DD-YY")
> > >
> > >
> > > "Chris" wrote:
> > >
> > > > Hi
> > > >
> > > > I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> > > > to this excel spreadsheet. This works fine. The problem I have, are the data
> > > > types. I need to add the current date to this excel spreadsheet. But
> > > > regardless of the column format in the excel spreadsheet, the added values
> > > > have "Standard" as data type. The pre defined data type in the excel
> > > > spreadsheet column (type = date) seems to be ignored. Also changing the data
> > > > type after the import does not solve the problem.
> > > >
> > > > Only switching to the edit mode of an excel spreadsheet field solves the
> > > > problem. After adding a date value, the value is left aligned in the excel
> > > > spreadsheet field. After switching to the edit mode, the value is right
> > > > aligned in the excel spreadsheet field and the data type changes to date.
> > > >
> > > > vbscript:
> > > > dtDate = Date
> > > > strFileName = "c:\temp\logonlog.xlsx"
> > > > strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> > > > strDataSource = "Data Source="+ strfilename
> > > > strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> > > > Set objExConnection = CreateObject("ADODB.Connection")
> > > > objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
> > > >
> > > > ' Without converting to string, the code generates a type mismatch error
> > > > objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> > > > + "')"
> > > > objExConnection.close()
> > > >
> > > > Special thanks for your support.
> > > > Chris
> > > >
> > > >
> > > >

 
Reply With Quote
 
Joel
Guest
Posts: n/a
 
      28th Oct 2008
The format function in the VBA help is almost impossible to find.

to test it try this code

msgbox(format(DateValue("1/1/08"),"MMMM-DD-YYYY"))


Here is the VBA help. It is easier to read as HTML format from the help menu.

Format Function


Returns a Variant (String) containing an expression formatted according to
instructions contained in a format expression.

Syntax

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

The Format function syntax has these parts:

Part Description
expression Required. Any valid expression.
format Optional. A valid named or user-defined format expression.
firstdayofweek Optional. A constant that specifies the first day of the week.
firstweekofyear Optional. A constant that specifies the first week of the
year.



Settings

The firstdayofweek argument has these settings:

Constant Value Description
vbUseSystem 0 Use NLS API setting.
VbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday



The firstweekofyear argument has these settings:

Constant Value Description
vbUseSystem 0 Use NLS API setting.
vbFirstJan1 1 Start with week in which January 1 occurs (default).
vbFirstFourDays 2 Start with the first week that has at least four days in
the year.
vbFirstFullWeek 3 Start with the first full week of the year.



Remarks

To Format Do This
Numbers Use predefined named numeric formats or create user-defined numeric
formats.
Dates and times Use predefined named date/time formats or create
user-defined date/time formats.
Date and time serial numbers Use date and time formats or numeric formats.
Strings Create your own user-defined string formats.



If you try to format a number without specifying format, Format provides
functionality similar to the Str function, although it is internationally
aware. However, positive numbers formatted as strings using Format don’t
include a leading space reserved for the sign of the value; those converted
using Str retain the leading space.

If you are formatting a non-localized numeric string, you should use a
user-defined numeric format to ensure that you get the look you want.

Note If the Calendar property setting is Gregorian and format specifies date
formatting, the supplied expression must be Gregorian. If the Visual Basic
Calendar property setting is Hijri, the supplied expression must be Hijri.

If the calendar is Gregorian, the meaning of format expression symbols is
unchanged. If the calendar is Hijri, all date format symbols (for example,
dddd, mmmm, yyyy) have the same meaning but apply to the Hijri calendar.
Format symbols remain in English; symbols that result in text display (for
example, AM and PM) display the string (English or Arabic) associated with
that symbol. The range of certain symbols changes when the calendar is Hijri.

Symbol Range
d 1-30
dd 1-30
ww 1-51
mmm Displays full month names (Hijri month names have no abbreviations).
y 1-355
yyyy 100-9666



"Chris" wrote:

> The format function gives me a type mismatch error anymore. Please excuse me,
> I am not adept in programming, but I can't find the format function at msdn
> vbscript language reference. So I tried the FormatDateTime function again.
> This function works without converting to string, but in excel, I have the
> problem again.
>
> "Joel" wrote:
>
> > I don't know anything about the hidden apoxtrophe. The dat is not in
> > Microsoft Werial date so DateValue need to be used
> >
> > format(DateValue(dtDate),"MM-DD-YY")
> >
> > You may want to see the value so you can figure out what is wrong
> > msgbox(dtDate)
> >
> > "Chris" wrote:
> >
> > > The format function gives me a type mismatch error. So, I tried the
> > > FormatDateTime function, without success and also a Trim does not solve the
> > > problem. Browsing the web, I found something about an hidden apostrophe. Do
> > > you know anything about this?
> > >
> > > "Joel" wrote:
> > >
> > > > CSTR add a space infront of the string. The space is a place holder for a
> > > > plus or minus sign. I think the extra space is why the data is left aligned
> > > > in the cell. Instead of cstr() use format()
> > > >
> > > > from
> > > > cstr(dtDate)
> > > > to
> > > > format(dtDate,"MM-DD-YY")
> > > >
> > > >
> > > > "Chris" wrote:
> > > >
> > > > > Hi
> > > > >
> > > > > I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> > > > > to this excel spreadsheet. This works fine. The problem I have, are the data
> > > > > types. I need to add the current date to this excel spreadsheet. But
> > > > > regardless of the column format in the excel spreadsheet, the added values
> > > > > have "Standard" as data type. The pre defined data type in the excel
> > > > > spreadsheet column (type = date) seems to be ignored. Also changing the data
> > > > > type after the import does not solve the problem.
> > > > >
> > > > > Only switching to the edit mode of an excel spreadsheet field solves the
> > > > > problem. After adding a date value, the value is left aligned in the excel
> > > > > spreadsheet field. After switching to the edit mode, the value is right
> > > > > aligned in the excel spreadsheet field and the data type changes to date.
> > > > >
> > > > > vbscript:
> > > > > dtDate = Date
> > > > > strFileName = "c:\temp\logonlog.xlsx"
> > > > > strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> > > > > strDataSource = "Data Source="+ strfilename
> > > > > strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> > > > > Set objExConnection = CreateObject("ADODB.Connection")
> > > > > objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
> > > > >
> > > > > ' Without converting to string, the code generates a type mismatch error
> > > > > objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> > > > > + "')"
> > > > > objExConnection.close()
> > > > >
> > > > > Special thanks for your support.
> > > > > Chris
> > > > >
> > > > >
> > > > >

 
Reply With Quote
 
Chris
Guest
Posts: n/a
 
      29th Oct 2008
I have a type mismatch error again, exactly using your command.

Thank you for your notes concerning the format function. I am not 100% sure
again, that this function works in VBScript. Microsoft writes the following
on msdn:

VBScript supports some of the built-in Visual Basic functions such as
Msgbox, Date, and IsNumeric. However, because VBScript is a subset of Visual
Basic, not all built-in functions are supported. For example, VBScript does
not support the Format function and the file I/O functions.



"Joel" wrote:

> The format function in the VBA help is almost impossible to find.
>
> to test it try this code
>
> msgbox(format(DateValue("1/1/08"),"MMMM-DD-YYYY"))
>
>
> Here is the VBA help. It is easier to read as HTML format from the help menu.
>
> Format Function
>
>
> Returns a Variant (String) containing an expression formatted according to
> instructions contained in a format expression.
>
> Syntax
>
> Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
>
> The Format function syntax has these parts:
>
> Part Description
> expression Required. Any valid expression.
> format Optional. A valid named or user-defined format expression.
> firstdayofweek Optional. A constant that specifies the first day of the week.
> firstweekofyear Optional. A constant that specifies the first week of the
> year.
>
>
>
> Settings
>
> The firstdayofweek argument has these settings:
>
> Constant Value Description
> vbUseSystem 0 Use NLS API setting.
> VbSunday 1 Sunday (default)
> vbMonday 2 Monday
> vbTuesday 3 Tuesday
> vbWednesday 4 Wednesday
> vbThursday 5 Thursday
> vbFriday 6 Friday
> vbSaturday 7 Saturday
>
>
>
> The firstweekofyear argument has these settings:
>
> Constant Value Description
> vbUseSystem 0 Use NLS API setting.
> vbFirstJan1 1 Start with week in which January 1 occurs (default).
> vbFirstFourDays 2 Start with the first week that has at least four days in
> the year.
> vbFirstFullWeek 3 Start with the first full week of the year.
>
>
>
> Remarks
>
> To Format Do This
> Numbers Use predefined named numeric formats or create user-defined numeric
> formats.
> Dates and times Use predefined named date/time formats or create
> user-defined date/time formats.
> Date and time serial numbers Use date and time formats or numeric formats.
> Strings Create your own user-defined string formats.
>
>
>
> If you try to format a number without specifying format, Format provides
> functionality similar to the Str function, although it is internationally
> aware. However, positive numbers formatted as strings using Format don’t
> include a leading space reserved for the sign of the value; those converted
> using Str retain the leading space.
>
> If you are formatting a non-localized numeric string, you should use a
> user-defined numeric format to ensure that you get the look you want.
>
> Note If the Calendar property setting is Gregorian and format specifies date
> formatting, the supplied expression must be Gregorian. If the Visual Basic
> Calendar property setting is Hijri, the supplied expression must be Hijri.
>
> If the calendar is Gregorian, the meaning of format expression symbols is
> unchanged. If the calendar is Hijri, all date format symbols (for example,
> dddd, mmmm, yyyy) have the same meaning but apply to the Hijri calendar.
> Format symbols remain in English; symbols that result in text display (for
> example, AM and PM) display the string (English or Arabic) associated with
> that symbol. The range of certain symbols changes when the calendar is Hijri.
>
> Symbol Range
> d 1-30
> dd 1-30
> ww 1-51
> mmm Displays full month names (Hijri month names have no abbreviations).
> y 1-355
> yyyy 100-9666
>
>
>
> "Chris" wrote:
>
> > The format function gives me a type mismatch error anymore. Please excuse me,
> > I am not adept in programming, but I can't find the format function at msdn
> > vbscript language reference. So I tried the FormatDateTime function again.
> > This function works without converting to string, but in excel, I have the
> > problem again.
> >
> > "Joel" wrote:
> >
> > > I don't know anything about the hidden apoxtrophe. The dat is not in
> > > Microsoft Werial date so DateValue need to be used
> > >
> > > format(DateValue(dtDate),"MM-DD-YY")
> > >
> > > You may want to see the value so you can figure out what is wrong
> > > msgbox(dtDate)
> > >
> > > "Chris" wrote:
> > >
> > > > The format function gives me a type mismatch error. So, I tried the
> > > > FormatDateTime function, without success and also a Trim does not solve the
> > > > problem. Browsing the web, I found something about an hidden apostrophe. Do
> > > > you know anything about this?
> > > >
> > > > "Joel" wrote:
> > > >
> > > > > CSTR add a space infront of the string. The space is a place holder for a
> > > > > plus or minus sign. I think the extra space is why the data is left aligned
> > > > > in the cell. Instead of cstr() use format()
> > > > >
> > > > > from
> > > > > cstr(dtDate)
> > > > > to
> > > > > format(dtDate,"MM-DD-YY")
> > > > >
> > > > >
> > > > > "Chris" wrote:
> > > > >
> > > > > > Hi
> > > > > >
> > > > > > I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> > > > > > to this excel spreadsheet. This works fine. The problem I have, are the data
> > > > > > types. I need to add the current date to this excel spreadsheet. But
> > > > > > regardless of the column format in the excel spreadsheet, the added values
> > > > > > have "Standard" as data type. The pre defined data type in the excel
> > > > > > spreadsheet column (type = date) seems to be ignored. Also changing the data
> > > > > > type after the import does not solve the problem.
> > > > > >
> > > > > > Only switching to the edit mode of an excel spreadsheet field solves the
> > > > > > problem. After adding a date value, the value is left aligned in the excel
> > > > > > spreadsheet field. After switching to the edit mode, the value is right
> > > > > > aligned in the excel spreadsheet field and the data type changes to date.
> > > > > >
> > > > > > vbscript:
> > > > > > dtDate = Date
> > > > > > strFileName = "c:\temp\logonlog.xlsx"
> > > > > > strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> > > > > > strDataSource = "Data Source="+ strfilename
> > > > > > strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> > > > > > Set objExConnection = CreateObject("ADODB.Connection")
> > > > > > objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
> > > > > >
> > > > > > ' Without converting to string, the code generates a type mismatch error
> > > > > > objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> > > > > > + "')"
> > > > > > objExConnection.close()
> > > > > >
> > > > > > Special thanks for your support.
> > > > > > Chris
> > > > > >
> > > > > >
> > > > > >

 
Reply With Quote
 
Chris
Guest
Posts: n/a
 
      30th Oct 2008
I found a workaround myself. Before executing the "insert" command, I convert
the datetime value in a double data type. Excel 12 is able to dissolve this
value as datetime afterwards.

Special thanks for your support.
regards chris

"Chris" wrote:

> I have a type mismatch error again, exactly using your command.
>
> Thank you for your notes concerning the format function. I am not 100% sure
> again, that this function works in VBScript. Microsoft writes the following
> on msdn:
>
> VBScript supports some of the built-in Visual Basic functions such as
> Msgbox, Date, and IsNumeric. However, because VBScript is a subset of Visual
> Basic, not all built-in functions are supported. For example, VBScript does
> not support the Format function and the file I/O functions.
>
>
>
> "Joel" wrote:
>
> > The format function in the VBA help is almost impossible to find.
> >
> > to test it try this code
> >
> > msgbox(format(DateValue("1/1/08"),"MMMM-DD-YYYY"))
> >
> >
> > Here is the VBA help. It is easier to read as HTML format from the help menu.
> >
> > Format Function
> >
> >
> > Returns a Variant (String) containing an expression formatted according to
> > instructions contained in a format expression.
> >
> > Syntax
> >
> > Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
> >
> > The Format function syntax has these parts:
> >
> > Part Description
> > expression Required. Any valid expression.
> > format Optional. A valid named or user-defined format expression.
> > firstdayofweek Optional. A constant that specifies the first day of the week.
> > firstweekofyear Optional. A constant that specifies the first week of the
> > year.
> >
> >
> >
> > Settings
> >
> > The firstdayofweek argument has these settings:
> >
> > Constant Value Description
> > vbUseSystem 0 Use NLS API setting.
> > VbSunday 1 Sunday (default)
> > vbMonday 2 Monday
> > vbTuesday 3 Tuesday
> > vbWednesday 4 Wednesday
> > vbThursday 5 Thursday
> > vbFriday 6 Friday
> > vbSaturday 7 Saturday
> >
> >
> >
> > The firstweekofyear argument has these settings:
> >
> > Constant Value Description
> > vbUseSystem 0 Use NLS API setting.
> > vbFirstJan1 1 Start with week in which January 1 occurs (default).
> > vbFirstFourDays 2 Start with the first week that has at least four days in
> > the year.
> > vbFirstFullWeek 3 Start with the first full week of the year.
> >
> >
> >
> > Remarks
> >
> > To Format Do This
> > Numbers Use predefined named numeric formats or create user-defined numeric
> > formats.
> > Dates and times Use predefined named date/time formats or create
> > user-defined date/time formats.
> > Date and time serial numbers Use date and time formats or numeric formats.
> > Strings Create your own user-defined string formats.
> >
> >
> >
> > If you try to format a number without specifying format, Format provides
> > functionality similar to the Str function, although it is internationally
> > aware. However, positive numbers formatted as strings using Format don’t
> > include a leading space reserved for the sign of the value; those converted
> > using Str retain the leading space.
> >
> > If you are formatting a non-localized numeric string, you should use a
> > user-defined numeric format to ensure that you get the look you want.
> >
> > Note If the Calendar property setting is Gregorian and format specifies date
> > formatting, the supplied expression must be Gregorian. If the Visual Basic
> > Calendar property setting is Hijri, the supplied expression must be Hijri.
> >
> > If the calendar is Gregorian, the meaning of format expression symbols is
> > unchanged. If the calendar is Hijri, all date format symbols (for example,
> > dddd, mmmm, yyyy) have the same meaning but apply to the Hijri calendar.
> > Format symbols remain in English; symbols that result in text display (for
> > example, AM and PM) display the string (English or Arabic) associated with
> > that symbol. The range of certain symbols changes when the calendar is Hijri.
> >
> > Symbol Range
> > d 1-30
> > dd 1-30
> > ww 1-51
> > mmm Displays full month names (Hijri month names have no abbreviations).
> > y 1-355
> > yyyy 100-9666
> >
> >
> >
> > "Chris" wrote:
> >
> > > The format function gives me a type mismatch error anymore. Please excuse me,
> > > I am not adept in programming, but I can't find the format function at msdn
> > > vbscript language reference. So I tried the FormatDateTime function again.
> > > This function works without converting to string, but in excel, I have the
> > > problem again.
> > >
> > > "Joel" wrote:
> > >
> > > > I don't know anything about the hidden apoxtrophe. The dat is not in
> > > > Microsoft Werial date so DateValue need to be used
> > > >
> > > > format(DateValue(dtDate),"MM-DD-YY")
> > > >
> > > > You may want to see the value so you can figure out what is wrong
> > > > msgbox(dtDate)
> > > >
> > > > "Chris" wrote:
> > > >
> > > > > The format function gives me a type mismatch error. So, I tried the
> > > > > FormatDateTime function, without success and also a Trim does not solve the
> > > > > problem. Browsing the web, I found something about an hidden apostrophe. Do
> > > > > you know anything about this?
> > > > >
> > > > > "Joel" wrote:
> > > > >
> > > > > > CSTR add a space infront of the string. The space is a place holder for a
> > > > > > plus or minus sign. I think the extra space is why the data is left aligned
> > > > > > in the cell. Instead of cstr() use format()
> > > > > >
> > > > > > from
> > > > > > cstr(dtDate)
> > > > > > to
> > > > > > format(dtDate,"MM-DD-YY")
> > > > > >
> > > > > >
> > > > > > "Chris" wrote:
> > > > > >
> > > > > > > Hi
> > > > > > >
> > > > > > > I have an excel 12 spreadsheet. With a simple vbscript, I can add some data
> > > > > > > to this excel spreadsheet. This works fine. The problem I have, are the data
> > > > > > > types. I need to add the current date to this excel spreadsheet. But
> > > > > > > regardless of the column format in the excel spreadsheet, the added values
> > > > > > > have "Standard" as data type. The pre defined data type in the excel
> > > > > > > spreadsheet column (type = date) seems to be ignored. Also changing the data
> > > > > > > type after the import does not solve the problem.
> > > > > > >
> > > > > > > Only switching to the edit mode of an excel spreadsheet field solves the
> > > > > > > problem. After adding a date value, the value is left aligned in the excel
> > > > > > > spreadsheet field. After switching to the edit mode, the value is right
> > > > > > > aligned in the excel spreadsheet field and the data type changes to date.
> > > > > > >
> > > > > > > vbscript:
> > > > > > > dtDate = Date
> > > > > > > strFileName = "c:\temp\logonlog.xlsx"
> > > > > > > strProvider = "Provider=Microsoft.ACE.OLEDB.12.0"
> > > > > > > strDataSource = "Data Source="+ strfilename
> > > > > > > strExtend = "Extended Properties='Excel 12.0;HDR=YES'"
> > > > > > > Set objExConnection = CreateObject("ADODB.Connection")
> > > > > > > objExConnection.Open strProvider + ";" + strDataSource + ";" + strExtend
> > > > > > >
> > > > > > > ' Without converting to string, the code generates a type mismatch error
> > > > > > > objExConnection.Execute "Insert into log (logdate) values ('" + cstr(dtDate)
> > > > > > > + "')"
> > > > > > > objExConnection.close()
> > > > > > >
> > > > > > > Special thanks for your support.
> > > > > > > Chris
> > > > > > >
> > > > > > >
> > > > > > >

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Adding data from multiple worksheets of the same type Leonp Microsoft Excel Misc 0 4th Mar 2010 09:43 AM
Data Type Mismatch in Expression - can I force a query to read as a diferent data type? S Davis Microsoft Access Queries 1 7th Jun 2007 11:33 PM
Dynamic Image Resize and Data Type issues webonomic Microsoft ASP .NET 2 26th Jan 2006 08:40 PM
VBSCRIPT Import CSV File Change Data Type Darryl Brooks via AccessMonster.com Microsoft Access External Data 15 23rd May 2005 06:21 PM
Adding data to the data table without adding a data marker to the chart BA Microsoft Excel Charting 2 19th Nov 2003 09:42 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 10:29 AM.