Solved

need help on a search prog

Posted on 2002-04-28
4
145 Views
Last Modified: 2012-05-08
My prog is simple. I need someone to correct the following code. I have a great number of invoives with data such as invoice #, date, amount.etc.
I need code to retrieve by invoice#.

here is the code that WON'T work!


inv2 = Form4.Text1.Text

Dim inv As String * 8
Dim ddate As String * 9
Dim amt As String * 7
Dim amt5 As String * 7
Dim deal As String * 20
Dim paid As String * 3

Open "C:\invoice\dollar.dat" For Input As #1
X1% = 0
Do While (Not EOF(1))
    Input #1, inv, ddate, amt, amt5, deal, paid
     If inv = inv2 Then
         hit$ = "yes"
         MsgBox "Found it", , ib
     Exit Do
     Else
     X1% = X1% + 1
            'nd If
'Loop
If hit$ = "no" Then
MsgBox "invoice not found", , ib
Max% = X1%
End If
    X1% = X1% + 1
   
'oop
'Max% = X1%
'lose 1
'Open "C:\invoice\dollar.dat" For Input As #3
'X1% = 0
'Do While (Not EOF(1))
   ' Input #1, inv, ddate, amt, amt5, deal, paid
        ' If inv = inv2 Then
        ' hit$ = "yes"
        ' MsgBox "Found it", , ib
   ' Exit Do
   ' Else
        X1% = X1% + 1
            End If
Loop
If hit$ = "no" Then
MsgBox "invoice not found", , ib
Max% = X1%
End If

Form4.Visible = False
Form3.Visible = True
Form3.Text1.Text = inv
End Sub


I am using vb4
0
Comment
Question by:hjaycox
  • 2
4 Comments
 
LVL 45

Expert Comment

by:aikimark
ID: 6976194
I've removed the comments and indented for clarity:

Open "C:\invoice\dollar.dat" For Input As #1
X1% = 0

Do While (Not EOF(1))
  Input #1, inv, ddate, amt, amt5, deal, paid
  If inv = inv2 Then
    hit$ = "yes"
    MsgBox "Found it", , ib
    Exit Do
  Else
    X1% = X1% + 1

    If hit$ = "no" Then
      MsgBox "invoice not found", , ib
      Max% = X1%
    End If
    X1% = X1% + 1
   
    X1% = X1% + 1
  End If

Loop

If hit$ = "no" Then
  MsgBox "invoice not found", , ib
  Max% = X1%
End If

===============================================
Comments and questions:

1. you are incrementing X1% too many times
2. what is the ib variable used in msgbox statement?
3. you should initialize hit$ = "no" before you start looping.
4. look at the data and type the inventory number of the first record.  Set a breakpoint in this code and step through it, inspecting the inv value after the Input statement and the inv2 variable.
0
 
LVL 3

Accepted Solution

by:
n_narayanan earned 200 total points
ID: 6976703
Try this,
din inv2 as string * 8
inv2 = left(trim(Form4.Text1.Text),8)
'Make sure that you have set the text1.maxlength
'property to 8
Dim inv As String * 8
Dim ddate As String * 9
Dim amt As String * 7
Dim amt5 As String * 7
Dim deal As String * 20
Dim paid As String * 3
dim hit as string

hit$="no"

Open "C:\invoice\dollar.dat" For Input As #1
X1% = 0
Do While (Not EOF(1))
   Input #1, inv, ddate, amt, amt5, deal, paid
   if eof(1) then
      exit do
   end if
    If trim(inv) = inv2 Then
        hit$ = "yes"
        MsgBox "Invoice Found"
        Exit Do
    Else
        X1% = X1% + 1
    End If
Loop

If hit$ = "no" Then
   MsgBox "invoice not found"
   Max% = X1%
End If
Form4.Visible = False
Form3.Visible = True
Form3.Text1.Text = inv
End Sub

Cheers

Narayanan
0
 
LVL 45

Expert Comment

by:aikimark
ID: 6976946
I guess I should have asked you:

1. Do you really need the fixed lengths on your string variables?
2. Is your file comma-delimited or are you incorrectly trying to do record I/O with an input statement instead of a Get statement?

The answer to 2 will be determined by my diagnostic steps.
0
 

Author Comment

by:hjaycox
ID: 6979152
had to change one code line
if trim(inv)= inv2 then  to  if inv = inv2 and it works

thanks

look for my next question on the same prog
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question