problem on UpdateData()

Dear, Folks,

I used updatedata() on my program.
I found the program had problem
when the updatedata() was executed , I found the PROBLEM :
unhandled exception...access violation...

I don't know why, I called updatedata()several time on the 
same program, but only one calling cann't get through
Also,I found if I remove the function call 
String2ByteArray(str,buf); so updatedata() work well.
my code :
-----------------------

int String2ByteArray(CString str, BYTE* buf)
{
    str.Remove(' ');
    str.MakeUpper();
    if (str.Left(2) == "0X")
        str = str.Mid(2); 
	else 
		return -1;  // No "0X" ,means decimal

    int len = str.GetLength();
    if (len == 0)
        return 0;

    if (len % 2)
    {
        str.Insert(0, '0');
        ++len;
    }

    BYTE c;
    for (int i=0; i<len/2; i++)
    {
        c = str[2*i] > '9' ? str[2*i]-'A'+10 : str[2*i]-
'0';
        buf[i] = c << 4;
        c = str[2*i+1] > '9' ? str[2*i+1]-'A'+10 : str
[2*i+1]-'0';
        buf[i] |= c;
    }
    return len/2;
}
-------------------------------
void myfunction(CString str)
{
	BYTE buf[4]={ 0,0,0,0 }; 	
	int iByteLen=String2ByteArray(str,buf);
         .....
        updatedata();
        ......


}
------------------------
Also,I found if I remove the function call 
String2ByteArray(str,buf); so updatedata() work well.

Thanks
Julia


0
anonymous (74721)
1/9/2004 12:42:59 AM
vc.mfc 33608 articles. 0 followers. Follow

6 Replies
507 Views

Similar Articles

[PageSpeed] 38

When using UpdateData you should specify in the brackets 
whether it's TRUE of FALSE.  If you want to update the 
window put UpdateData(FALSE) ; if you want to grab data 
from window put UpdateData(TRUE)

Sincerely,

James Simpson
Straightway Technologies
http://straightway.no-ip.com
0
anonymous (74721)
1/9/2004 4:18:42 AM
I suspect (as you allude to) that the problem is in fact in your
String2ByteArray function. More than likely a memory access issue that only
rears it's ugly head during the UpdateData func. I would guess that since
the byte array that you pass in to your function is only 4 bytes long, and
you don't check the length of the input string, that's where the problem
lies.

There are two simple checks for that:
1. Make the byte array larger (say 100 to be sure) and see what happens.
2. Perform some bounds checking in your func.

Jase

"Julia" <anonymous@discussions.microsoft.com> wrote in message
news:03e901c3d649$87ae9c70$a601280a@phx.gbl...
> Dear, Folks,
>
> I used updatedata() on my program.
> I found the program had problem
> when the updatedata() was executed , I found the PROBLEM :
> unhandled exception...access violation...
>
> I don't know why, I called updatedata()several time on the
> same program, but only one calling cann't get through
> Also,I found if I remove the function call
> String2ByteArray(str,buf); so updatedata() work well.
> my code :
> -----------------------
>
> int String2ByteArray(CString str, BYTE* buf)
> {
>     str.Remove(' ');
>     str.MakeUpper();
>     if (str.Left(2) == "0X")
>         str = str.Mid(2);
> else
> return -1;  // No "0X" ,means decimal
>
>     int len = str.GetLength();
>     if (len == 0)
>         return 0;
>
>     if (len % 2)
>     {
>         str.Insert(0, '0');
>         ++len;
>     }
>
>     BYTE c;
>     for (int i=0; i<len/2; i++)
>     {
>         c = str[2*i] > '9' ? str[2*i]-'A'+10 : str[2*i]-
> '0';
>         buf[i] = c << 4;
>         c = str[2*i+1] > '9' ? str[2*i+1]-'A'+10 : str
> [2*i+1]-'0';
>         buf[i] |= c;
>     }
>     return len/2;
> }
> -------------------------------
> void myfunction(CString str)
> {
> BYTE buf[4]={ 0,0,0,0 };
> int iByteLen=String2ByteArray(str,buf);
>          .....
>         updatedata();
>         ......
>
>
> }
> ------------------------
> Also,I found if I remove the function call
> String2ByteArray(str,buf); so updatedata() work well.
>
> Thanks
> Julia
>
>


0
jshelley (197)
1/9/2004 4:43:49 AM
Actually, TRUE is the default parameter, so a function call with no
parameters assumes this.

Jase

"James Simpson" <anonymous@discussions.microsoft.com> wrote in message
news:065b01c3d667$aa94a630$a501280a@phx.gbl...
> When using UpdateData you should specify in the brackets
> whether it's TRUE of FALSE.  If you want to update the
> window put UpdateData(FALSE) ; if you want to grab data
> from window put UpdateData(TRUE)
>
> Sincerely,
>
> James Simpson
> Straightway Technologies
> http://straightway.no-ip.com


0
jshelley (197)
1/9/2004 4:45:08 AM
thank you , you are right, I have change them.
julia
>-----Original Message-----
>I suspect (as you allude to) that the problem is in fact 
in your
>String2ByteArray function. More than likely a memory 
access issue that only
>rears it's ugly head during the UpdateData func. I would 
guess that since
>the byte array that you pass in to your function is only 
4 bytes long, and
>you don't check the length of the input string, that's 
where the problem
>lies.
>
>There are two simple checks for that:
>1. Make the byte array larger (say 100 to be sure) and 
see what happens.
>2. Perform some bounds checking in your func.
>
>Jase
>
>"Julia" <anonymous@discussions.microsoft.com> wrote in 
message
>news:03e901c3d649$87ae9c70$a601280a@phx.gbl...
>> Dear, Folks,
>>
>> I used updatedata() on my program.
>> I found the program had problem
>> when the updatedata() was executed , I found the 
PROBLEM :
>> unhandled exception...access violation...
>>
>> I don't know why, I called updatedata()several time on 
the
>> same program, but only one calling cann't get through
>> Also,I found if I remove the function call
>> String2ByteArray(str,buf); so updatedata() work well.
>> my code :
>> -----------------------
>>
>> int String2ByteArray(CString str, BYTE* buf)
>> {
>>     str.Remove(' ');
>>     str.MakeUpper();
>>     if (str.Left(2) == "0X")
>>         str = str.Mid(2);
>> else
>> return -1;  // No "0X" ,means decimal
>>
>>     int len = str.GetLength();
>>     if (len == 0)
>>         return 0;
>>
>>     if (len % 2)
>>     {
>>         str.Insert(0, '0');
>>         ++len;
>>     }
>>
>>     BYTE c;
>>     for (int i=0; i<len/2; i++)
>>     {
>>         c = str[2*i] > '9' ? str[2*i]-'A'+10 : str[2*i]-
>> '0';
>>         buf[i] = c << 4;
>>         c = str[2*i+1] > '9' ? str[2*i+1]-'A'+10 : str
>> [2*i+1]-'0';
>>         buf[i] |= c;
>>     }
>>     return len/2;
>> }
>> -------------------------------
>> void myfunction(CString str)
>> {
>> BYTE buf[4]={ 0,0,0,0 };
>> int iByteLen=String2ByteArray(str,buf);
>>          .....
>>         updatedata();
>>         ......
>>
>>
>> }
>> ------------------------
>> Also,I found if I remove the function call
>> String2ByteArray(str,buf); so updatedata() work well.
>>
>> Thanks
>> Julia
>>
>>
>
>
>.
>
0
anonymous (74721)
1/9/2004 3:35:11 PM
Of course, my view is that anything that goes wrong in UpdateData should be solved by
deleting all instances of the use of this function from your code. 

I note that you make no attempt to do a bounds check; you provide only a 4-byte buffer but
you do not check that you write no more than 4 bytes. Thus, if you pass in a string longer
than 8 hex digits (not counting the 0x) you wil simply trash the stack. This makes it
likely that the failure is not in UpdateData at all, but in the attempt to return from
your current function, because you have destroyed the return address. Since you did not
tell us where the error occurred, for example, by giving the traceback two or three levels
back, this is complete guesswork, but any code that doesn't check buffer lengths is
pure-and-simple bad code, and until you fix it, there is no point in worrying about any
other factors.
					joe
 
On Thu, 8 Jan 2004 16:42:59 -0800, "Julia" <anonymous@discussions.microsoft.com> wrote:

>Dear, Folks,
>
>I used updatedata() on my program.
>I found the program had problem
>when the updatedata() was executed , I found the PROBLEM :
>unhandled exception...access violation...
>
>I don't know why, I called updatedata()several time on the 
>same program, but only one calling cann't get through
>Also,I found if I remove the function call 
>String2ByteArray(str,buf); so updatedata() work well.
>my code :
>-----------------------
>
>int String2ByteArray(CString str, BYTE* buf)
>{
>    str.Remove(' ');
>    str.MakeUpper();
>    if (str.Left(2) == "0X")
>        str = str.Mid(2); 
>	else 
>		return -1;  // No "0X" ,means decimal
>
>    int len = str.GetLength();
>    if (len == 0)
>        return 0;
>
>    if (len % 2)
>    {
>        str.Insert(0, '0');
>        ++len;
>    }
>
>    BYTE c;
>    for (int i=0; i<len/2; i++)
>    {
>        c = str[2*i] > '9' ? str[2*i]-'A'+10 : str[2*i]-
>'0';
>        buf[i] = c << 4;
>        c = str[2*i+1] > '9' ? str[2*i+1]-'A'+10 : str
>[2*i+1]-'0';
>        buf[i] |= c;
>    }
>    return len/2;
>}
>-------------------------------
>void myfunction(CString str)
>{
>	BYTE buf[4]={ 0,0,0,0 }; 	
>	int iByteLen=String2ByteArray(str,buf);
>         .....
>        updatedata();
>        ......
>
>
>}
>------------------------
>Also,I found if I remove the function call 
>String2ByteArray(str,buf); so updatedata() work well.
>
>Thanks
>Julia
>

Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15973)
1/12/2004 2:19:31 AM
Generally speaking, it's a good idea to read the posts before replying... we
sorta went through this a few days ago ;-) And go easy, there's no need for
all that "simply bad code" shit.

Jase

BTW for your own satisfaction, that was the problem.

"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message
news:j11400hm9rjm08i0791dkeh72b92svokn4@4ax.com...
> Of course, my view is that anything that goes wrong in UpdateData should
be solved by
> deleting all instances of the use of this function from your code.
>
> I note that you make no attempt to do a bounds check; you provide only a
4-byte buffer but
> you do not check that you write no more than 4 bytes. Thus, if you pass in
a string longer
> than 8 hex digits (not counting the 0x) you wil simply trash the stack.
This makes it
> likely that the failure is not in UpdateData at all, but in the attempt to
return from
> your current function, because you have destroyed the return address.
Since you did not
> tell us where the error occurred, for example, by giving the traceback two
or three levels
> back, this is complete guesswork, but any code that doesn't check buffer
lengths is
> pure-and-simple bad code, and until you fix it, there is no point in
worrying about any
> other factors.
> joe
>
> On Thu, 8 Jan 2004 16:42:59 -0800, "Julia"
<anonymous@discussions.microsoft.com> wrote:
>
> >Dear, Folks,
> >
> >I used updatedata() on my program.
> >I found the program had problem
> >when the updatedata() was executed , I found the PROBLEM :
> >unhandled exception...access violation...
> >
> >I don't know why, I called updatedata()several time on the
> >same program, but only one calling cann't get through
> >Also,I found if I remove the function call
> >String2ByteArray(str,buf); so updatedata() work well.
> >my code :
> >-----------------------
> >
> >int String2ByteArray(CString str, BYTE* buf)
> >{
> >    str.Remove(' ');
> >    str.MakeUpper();
> >    if (str.Left(2) == "0X")
> >        str = str.Mid(2);
> > else
> > return -1;  // No "0X" ,means decimal
> >
> >    int len = str.GetLength();
> >    if (len == 0)
> >        return 0;
> >
> >    if (len % 2)
> >    {
> >        str.Insert(0, '0');
> >        ++len;
> >    }
> >
> >    BYTE c;
> >    for (int i=0; i<len/2; i++)
> >    {
> >        c = str[2*i] > '9' ? str[2*i]-'A'+10 : str[2*i]-
> >'0';
> >        buf[i] = c << 4;
> >        c = str[2*i+1] > '9' ? str[2*i+1]-'A'+10 : str
> >[2*i+1]-'0';
> >        buf[i] |= c;
> >    }
> >    return len/2;
> >}
> >-------------------------------
> >void myfunction(CString str)
> >{
> > BYTE buf[4]={ 0,0,0,0 };
> > int iByteLen=String2ByteArray(str,buf);
> >         .....
> >        updatedata();
> >        ......
> >
> >
> >}
> >------------------------
> >Also,I found if I remove the function call
> >String2ByteArray(str,buf); so updatedata() work well.
> >
> >Thanks
> >Julia
> >
>
> Joseph M. Newcomer [MVP]
> email: newcomer@flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm


0
jshelley (197)
1/13/2004 3:03:28 AM
Reply:

Similar Artilces:

OWA Attachments problems
(BACKGROUND info - 2003 Front End(DMZ) - 1 2003 Backend - 2 2000 Backend - McAfee Groupshield 6.0 on each server) We're experiencing problems attaching attachments to our front-end mailserver via OWA. Small files < 1MB generally have no problems. If we connect directly to the server which the mailbox resides we have no problems.. This problem is internal and external. Problem occurs whether or not your mailbox is on the 2003 backend or 2000 backends. Thank you, Anthony Graber This sounds like the public folder posting limit. Are you trying to post to a PubliC Folder: http:/...

Help with problem
I accidentally clicked on the "From" field in Outlook and drug it down my listing of emails. Now the field is missing and my emails do not list who they are from on the screen. I have to click on the email to see who it is from now. I cannot figure out how to get that field back now that I have done this. I have looked in a few places in Outlook to see if I could figure it out, but to no avail I have not figured it out. Any help would be appreciated. Right-click on the bar and add it back, or choose Customize Current View. Choose Fields, add the From field back. ...

initial post on possible problem with csv files
I don't have all the info yet but before I spend any time on this is there any known issues with Excel 2002 sp2 opening .csv files incorrectly? I have a report of a csv file opening fine in excel 97 but the same file is not formatted correctly when opened in Excel 2002 sp2... apparently all data gets stuffed into one column instead of it correctly separating columns according to the comma delimited file. any info would be greatly appreciated.. thanks. Maybe it's not excel that's really at fault. You may want to look at your regional settings and make sure that the separator in...

SP3 Install Problems
I have copied SP3 to a cd-r and then went to the pos computer running Store Ops (no online access) to install SP3. I got an error message Looking for another CD. Can SP3 be copied to a system from a cd. chucky8822, It might be looking for the original MRMS install disk. Try copying the Microsoft Retail Management System Store Operations.msi file to the disk if you only have Store Operations installed on this machine. If you have HQ, copy the 2 .msi files from the HQ disk too. -- * "chucky8822" <chucky8822@discussions.microsoft.com> wrote in message news:A577019E-BF7F-...

Final Problems
Alright. Getting closer and closer to the full instal of CRM onto our network, and there are only two hurdles left. The first error message I am getting, during the install, states "The specified domain either does not exist or could not be contacted.". The second error, agian during the install, "Setup cannot connect to the Microsoft CRM server. This might indicate that the server is down." Any helpful hints to get this thing fully installed? thanks, Chris Hi Chris, I am assuming that you are installing the CRM outlook client. you might already look into this but ju...

Chart problem.
I have a chart that plots body mass index, ie value on y axis, and dates on x axis. I have also added a second category x as I have divided the chart into horizonatl zones with different colors (ie underweight, overweight etc). Things work fine except that when I plot, for instance, three dates (Jan 1, Feb 1, March 1). The Jan point is right on the left side Y axis, the Feb is mid way across the chart, and the March is on the other end of the chart (right Y axis) I'd like to narrow down the spaces between each data point, and also have some space at the beginning of the chart ...

Cannot save Passwords problem
Hello. Having problems with saved passwords. Outlook 2003 and IE8 wouldn't save passwords. I have tried the following without success: kb en us 290684 Reverting to IE7 I loaded Google Chrome and it wont save either. Any further ideas? Would creating a new user be an option? Thanks ...

problem erasing CD-RW disc
Hello, I need to erase a CD-RW I use the follwing code: http://social.msdn.microsoft.com/Forums/en-US/windowsopticalplatform/thread/709d5658-6581-4dbc-8357-778cf052afe9 But I get this error: 0xC0AA090B E_IMAPI_ERASE_CLIENT_NAME_IS_NOT_VALID This obviously means: "The client name is not valid" http://msdn.microsoft.com/en-us/library/cc835244(VS.85).aspx But what is "The client" ? And what may cause this error? How could I use VBS to erase a RW CD or DVD? I use XP SP2 Thank you ...

Report Problem
-- Hansford D. Cornett ...

Problems again
When iI finshed last night, Money 2005 was working fine. Went to it tonight to update accounts - no longer can do so, again. Go to manage online banking - again, TD Canada Trust and BMO are not listed. Go to the "See the financial institions Money Supports" and both are listed. I just cannot get them into the list on my program. How do I do it? Barry ...

WM_PAINT problem
Hi I have this function for my dialog box (it's a project based on dialog box): void CDialogBarCopy::OnPaint() { CPaintDC dc(this); // device context for painting dc.SetBkColor(RGB(212,208,200)); dc.SetTextColor(RGB(255,0,0)); CFont *m_Font1 = new CFont; m_Font1->CreatePointFont(260, "Garamond"); dc.SelectObject(m_Font1); if(LecteurEnd == 1) { dc.TextOut(19, 37, "test"); } } If I delete the if condition "if(LecteurEnd == 1)", this code work good, but I want to do it just when my variable "LecteurEnd" is set to 1. When I set the varia...

VPC- Customization export problem
Hi, I'm trying to export customizations of CRM 4.0 (using the MS VPC image) to a stand alone system (onpremise). Export is failing with a message stating the language conversion failed and it says 1031, 1036, and 3082 are not supported on the production machine. VPC has German language pack and in the Settings -> Languages section three languages were enabled. Disabled those languages and did a fresh export, still no use. Any help would be greatly appreciated. Keshav On 18 d=E9c, 22:42, keshav...@gmail.com wrote: > Hi, > > I'm trying to export customizations of CRM 4.0...

How to solve this problem? #2
I write two program,one is that create ODBC-link to access and register two control:MS ADO Data and MS DataGrid automaticly,another is to display database,look: BOOL CAutoDlg::OnInitDialog() { SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0", \ "DSN=LeadLink\0 DESCRIPTION=For Lead ODBC Link\0 DBQ=RS485.mdb\0 FIL=Microsoft \ Access\0 default="); CString OcxFileName; HINSTANCE hLib; FARPROC lpDllEntryPoint; OcxFileName="MSADODC.OCX"; hLib = LoadLibrary(OcxFileName); if (hLib==NULL) { AfxMessageBox("Error"); } lpDllEntryPo...

Problem: Email Body becomes attachment in Text-only email client
We recently noticed CRM emails read via our University's web-based, text-only email client have the message body show up as an "unknown" attachment. This requires the student to open this attachment to read the email. It didn't always work this way, so I am trying to figure out if this is related to the upgrade from version 3 to 4 of CRM, a later rollup, or an "upgrade" to the University's text-only web-based email client? The email is viewable just fine is email client's that support html rendering. Anyone else seen this before? Any ideas on how ...

Two-Column problem
Using Arrange, Layout Guides, I set up Publisher 2002 with two columns per page and with two master pages with mirrored guides. For the first 11 pages, text flowed as expected. That is, each new pair of pages had two textboxes per page. But now, when I add a pair of pages, Publisher gives me guides for two columns per page but gives me only one page-wide textbox per page, not two. How do I force Publisher to give me two textboxes per page, as it did for the first 11 pages? (I might be missing something obvious. I haven't used Publisher in several years.) Thanks. Charley After mana...

CWinapp::onExitInstance
this is about using a dll i have made in another language. called from a MFC dll that has an instance of CwinApp i have a dll i programemd in delphi.. it uses indyTcp server, it has exported DLL methods to starting, and stopping the server which including freeing classes etc, sets TCpserver.active to true and false i am calling this dll from microsoft visual C++ (using loadlibrary, get procaddress) this is working fine, i can turn on the server, it behaves how i want, and i can turn it off. and everything gets unloaded from memory fine, if i call the turnoffserver methods in the delphi dll d...

Problems with merged cells
I have merged a fair few cells so that I can enter paragraphs, once I type past a certain point it wont bring up everything I have entered in the cell, it cuts half of it off & it wont print it either, but when i click on the cell all the information is there......can anyone help me out with this??? Excel has limitations (see link below). Cells will show up to 1024 characters, but up to 32,767 will appear in the formula bar. Printing.. maybe it has a 1024 character limit too. (Just because you're using merged cells doesn't mean you get more characters - they're ...

Problem with Filegroups and Indexes
Hi all I have two filegroups (DATA and INDEX). I create a new table on filegroup DATA and a PrimaryKey Constraint (NONCLUSTERED) on filegroup INDEX. This works fine, the table is on filegroup DATA and the Index on filegroup INDEX. When I now add a clustered Index (to filegroup INDEX), the filegroup of the table is changed to INDEX ... Does somebody know why this happens ?? Thanks a lot and best regards Frank Uray Hi Frank The leaf level of a clustered index IS the data. You cannot have a clustered index separate from the data, so wherever you build the clustered inde...

Problems with Upsize Wizard
I'm trying to upsize a table from Access 2002 to SQL Server 2000 using the Upsize Wizard in Access. I keep getting the following unhelpful error message : Table was skipped or export failed. The weird part is that I can use the Export utility to create the table on the SQL Server and it works perfectly. It creates the new table complete with indexes and data. This also tells me that the DSN I'm using for both the Export and the Upsize Wizard is set up properly, otherwise the export wouldn't have worked. The table is also just a standard, no-nonsense test table I created. It has ...

Word File Problems
When someone sends me an e-mail with a word document attached to it..Microsoft Office Vx does not seem to recognize certain characters...such as 1/2...it formats it as a leading -. For instance..... terms are 1/2 May and 1/2 June When I open the doc it looks like - May and - June. What can I do to rectify this? Thks, Art In article <f568d118.0402041736.3d32b81e@posting.google.com>, ademers254@mac.com (Art Demers) wrote: > When someone sends me an e-mail with a word document attached to > it..Microsoft Office Vx does not seem to recognize certain > characters...such as 1/2...

Linking problem
Hi, when i try to compile my project i get the following error: LINK : fatal error LNK1104: cannot open file "dsprop.lib" Where is this file? What should i do? Regards Emmanuel Emmanuel, > LINK : fatal error LNK1104: cannot open file "dsprop.lib" > > Where is this file? What should i do? You need to update your platform sdk. http://www.microsoft.com/msdownload/platformsdk/setuplauncher.asp -- Regards, Kobi Ben Tzvi "Emmanuel" <e951753@hotmail.com> wrote in message news:090101c37874$9fcc1f40$a301280a@phx.gbl... > > Hi, >...

SP2 upgrade problem...
Hi all, I bit the bullet this morning and installed SP2. I had an error halfway through the install... "Setup failed whie installing sub-component SMTP Service with error code 0xc103798a" I cant find any useful information (new SP - i know:/). The installation finished, and i dont see any problems. Everything seems to be working fine, but errors are of course bad! If anyone has any ideas im all ears (eyes). On Fri, 21 Oct 2005, Michael Varre wrote: > Hi all, I bit the bullet this morning and installed SP2. I had an error > halfway through the install... What, SP2...

Problems and Problems. Eperts please help
We are running GPS version 9.5 . I think its not supported by support any more so I amnot sure anyone can help me with this. We were running this of a Novell File server. It had Novell 5.0, GPS directory and Pervasive sql 2000i our server crashed. I build a new server and installed novell/ Perasvive sql 2000 and all the clients on the clients machine. Copied the GPS directory and made sure the clients path were pointing correctly to the GPS path. Now every client gets an error. Run betrieve first Nothing has changed the configration is the same and I have installed the betrieve clien...

problem with a conditional max problem
-- What formula could you enter in cell E13 so that if a value is entered in cell E12, cell E13 will display the value of f(x) that corresponds to the largest tabulated x which is less than or equal to the value entered. For example, if 3 is entered in cell E12, then E13 should display the value of f(0). Brian If your tabulated x's are in a range named "tabx", one way: =f(LOOKUP(E12,tabx)) where f() is your function. In article <8D7078DA-197C-4F2B-B7D0-129DEDC8EC8D@microsoft.com>, "Brian Cornejo" <BrianCornejo@discussions.microsoft.com> wrot...

Timetable problem
Hi I need to calculate the time worked for the employees on a weekly and monthly basis, but knowing all employees they are not always at work. So we use abbreviations like i.e AWOL, SICK exe. What formula will I use to add any text as zero hours worked. Any help with this will be greatly appreciated. Regards Albert.Harmse "Albert.Harmse" <Albert.Harmse@discussions.microsoft.com> wrote in message news:535D96DF-D938-4B93-AD40-DE916D1B38CE@microsoft.com... > Hi > I need to calculate the time worked for the employees on a weekly and > monthly ...