Hi, I'm Arcon.
I have a problem when saving records, it saves a record and when it saves another it overlaps the first record
when reading records with its id it does not read it to me correctly
thank you
Hi, I'm Arcon.
I have a problem when saving records, it saves a record and when it saves another it overlaps the first record
when reading records with its id it does not read it to me correctly
thank you
Well, the immediate problem is you are referencing Text2 in the loop for every record you're trying to save:
MyRecord.Name = "MyName" & " " & Text2.Text
The other problem I see (or one that will cause you problems later) is you're using a ListBox and combining record properties into one item to simulate columns:
List1.AddItem myRecord.ID & " " & myRecord.Name
Use a ListView control set to reportview and separate the ID and Name into listview columns:
Dim itmx As ListItem
Set itmx = ListView1.ListItems.Add()
itmx.Text = Text1.Text
itmx.SubItems(1) = Text2.Text
There's a long post of similar issues here: Click Here
thanks for answering
but i need it with list1
thank you
thanks for answering
but i need it with list1
thank you
Okay, but you still have problems with your loop in Command1_Click
For x = 0 To List1.ListCount - 1
myRecord.ID = Val(Text1.Text) ' Define ID.
myRecord.Name = "MyName" & " " & Text2.Text ' Create a string.' Write record to file.
Put #1, x + 1, myRecord ' Show the record into the listbox
Next x
You're using the List1.ListCount for the loop but assigning each record to Text1 and Text2
a possible solution as it would be to be able to save various data and read?
thank you
Try this.
ok it saves me well now the problem is in making the new button it doesn't add the id counter it stays at one.
thank you
Uncomment x = LOF(1) / Len(myRecord)
The problem is that I make the introduction in the id=1
and I add several items in the list1 and I save and then in the new button it adds the items of the list1 id=5
I would have to go out id:2
id:1
list1
1 a a
1 b b
1 c c
save button
new button
id=5
thank you
Try this. I coded the Click event for the list, which populates your text boxes. The New button sets the ID to one greater than the List box contents. Why are you reading the file from the end to the beginning?
thanks for answering
the problem is that the id is adding the items of list1
and the id has to add one by one
id:1
list1
1 a a
1 b b
1 c c
save button
new button
id=4
I would have to go out id:2
thank you
I guess I don't understand what you're trying to do. Are you wanting records to be 1 aa, 1 bb, 1 cc, 2 aa, 2 bb, 2 cc?
yes but with different data
1 aa, 1 bb, 1 cc, 2 rr, 2 ff, 3 yy, 3 pp, 3 jj
So 3 records of each number but different data? Sounds like a case for modular arithmetic e.g If X Mod 3 = 0 then...
You didn't say why you're reading the file from the end to the beginning?
it was just a test to read
List1.Clear
Dim myRecord As empRecord
Dim Position, totalRecords, bytesFile, bytesRecord ' Open sample file for random access.
Open App.Path & "\TESTFILE.txt" For Random As #1 Len = Len(myRecord) 'find out how many records are there in file #1
bytesFile = LOF(1)
bytesRecord = Len(myRecord)
totalRecords = bytesFile / bytesRecord ' read data (randomly)from last to first rec.
For Position = 1 To totalRecords ' Read the sample file using the Get.
Get #1, Position, myRecord ' Read the record' Show the record into the listbox
List1.AddItem myRecord.ID & " " & myRecord.Name
Next '
Close #1 ' Close the active file
thank you
a question the sep variable how is the variable declared?
The INSTR function returns a variant, so the return value can be declared as an integer or long.
Sep variable as declared
dim Sep as ?
thank you
Dim Sep as Long
-or-
Dim Sep as Integer
Either one will work. There's some debate as to which you should use, but either will work.
when I enter a record everything is fine, but
when I enter another record it puts it in the first record
It works right for me. I changed a few things and made comments in the file.
I can't make two id entries
id=1
name=a
id=1
name=b
he save it well
but when i enter the id=2
id=2
name=q
id=2
name=w
saves it but is overwritten in record id=1
It works for me. See attached.
To read the id=1, how would it be in the command3 button to read?
thank you
Change Text1.Text = myRecord.ID + 1 in Sub LoadRecords to Text1.Text = "1"
I mean this
Dim n As Integer
Dim v As Integer
List1.Clear
n = Val(InputBox("Enter Staff ID:"))
Open App.Path & "\TESTFILE.txt" For Random As #1 Len = Len(myRecord)
For v = 1 To n
Get #1, v, myRecord
If v = n Then
List1.AddItem myRecord.ID & " " & myRecord.Name
End If
Next v
Close #1
but it doesn't work
thank you
Sorry, I've been out of town for the week and will be gone this weekend, so I can't be of much help. I see you changed the Text Box to an InputBox. I'll see how it behaves when I get back.
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.