|
Judging by the error message, you have an SQL expression or query that isn't written correctly. Since we know nothing else of your application, it's impossible to be any more specific than that.
|
|
|
|
|
But hows that happen.. cause the program/application i made could run and the transaction form could appear in my computer and my friends comp.that also running VB program in her comp.. but it cant appear/run properly in 2 others computer?hows that?
thanks for Your concern..
modified 26-Jan-12 20:45pm.
|
|
|
|
|
Well, we still haven't seen the code yet that's throwing this error.
But, your code is treating a numeric field in the database as a text field, or some other mismatch like that. The testing you did on your machine apparently didn't cover how your users are actually using the application.
|
|
|
|
|
the problem is the error only happen when the transaction form need to be appear, not happen to other form..
this is the transaction form code:
Sub Cetakprinter()
Dim MGrs As String
Printer.Font = "Courier New"<code></code>
Printer.FontSize = "10"
Call BukaDB
RSGaji1.Open "select * from Gaji1 Where NomorSlp In(Select Max(NomorSlp)From Gaji1)Order By NomorSlp Desc", Conn
RSKasir.Open "select * from kasir where kodeksr=" & RSGaji1!KodeKsr & "", Conn
RSKasir.Requery
RSPegawai1.Open "select * from Pegawai1 where NIP=" & RSGaji1!NIP & "", Conn
RSPegawai1.Requery
Printer.Print
Printer.FontBold = True
Printer.FontBold = False
Printer.CurrentX = 0
Printer.CurrentY = 0
Printer.Print Tab(15); "RSUD SARAS HUSADA "
Printer.Print Tab(20); "PURWOREJO "
MGrs = String$(40, "=")
Printer.Print Tab(5); MGrs
Printer.Print
Printer.Print Tab(5); "Nomor Slip : "; RSGaji1!NomorSlp
Printer.Print Tab(5); "Tanggal : "; Format(RSGaji1!Tanggal, "DD-MMMM-YYYY")
Printer.Print Tab(5); "NIP : "; RSGaji1!NIP
Printer.Print Tab(5); "Nama : "; RSPegawai1!NamaPgw
Printer.Print Tab(5); "Petugas : "; RSKasir!NamaKsr
MGrs = String$(40, "-")
Printer.Print Tab(5); MGrs
RSDetail.Open "select * from DetailGaji Where NomorSlp In(Select max(NomorSlp)From DetailGaji)", Conn
RSDetail.Requery
RSDetail.MoveFirst
Do While Not RSDetail.EOF
Set RSPerkiraan1 = New ADODB.Recordset
RSPerkiraan1.Open "select * from Perkiraan1 where KodePrk=" & RSDetail!KodePrk & "", Conn
Printer.Print Tab(5); RSPerkiraan1!NamaPrk;
If Left(RSDetail!KodePrk, 1) = "0" Then
Printer.Print Tab(25); RKanan(RSDetail!Jumlah, " Rp ###,###,### +")
Else
Printer.Print Tab(25); RKanan(RSDetail!Jumlah, " Rp ###,###,### -")
End If
RSDetail.MoveNext
Loop
Printer.Print Tab(5); MGrs
Printer.Print Tab(5); "Pendapatan :";
Printer.Print Tab(25); RKanan(RSGaji1!Pendapatan, " Rp ###,###,### +");
Printer.Print Tab(5); "Potongan :";
Printer.Print Tab(25); RKanan(RSGaji1!Potongan, " Rp ###,###,### -");
Printer.Print Tab(5); MGrs
Printer.Print Tab(5); "Total :";
If RSGaji1!Pendapatan = RSGaji1!Potongan Then
Printer.Print Tab(34); RSGaji1!Pendapatan - RSGaji1!Potongan
Else
Printer.Print Tab(25); RKanan(RSGaji1!Pendapatan - RSGaji1!Potongan, "Rp ###,###,### +");
End If
Printer.Print Tab(5); MGrs
Printer.Print
Printer.EndDoc
Printer.KillDoc
End Sub
thank you for your concern...
|
|
|
|
|
rizaky2011 wrote: could you please give me example for code treating numeric field in the database
as a text file
No, because that makes no sense what so ever. You never treat a numeric column in a database as a "text file".
Again, something in your SQL statements is treating a numeric column as a string column or the other way around. We have no idea how your database tables are defined, so it's impossible for us to tell you what you did wrong. This is where YOU start investigating those possibilities. We've given you the stuff you should be checking for.
BTW, your SELECT statements that look like this are very suspicious. I have no idea what you're trying to do with them:
select * from Gaji1 Where NomorSlp In(Select Max(NomorSlp)From Gaji1)Order By NomorSlp Desc
The IN clause doesn't make sense since the Max(NomorSlp) only returns a single number. The IN clause shouldn't be used in that case.
|
|
|
|
|
is that so?but that's statement seem doesn't effect the running program..but when i run the program, the error appear and it's point to this code:
Dim SimpanGaji As String
SimpanGaji = " Insert into Gaji1 _ (NomorSlp,Tanggal,Jam,NIP,Pendapatan,Potongan,GajiBersih,KodeKsr) values " & _
"('" & LblNomorSlp & "','" & CDate(LblTanggal) & "','" & LblJam & "', " & _
"'" & Combo1 & "','" & LblPendapatan & "','" & LblPotongan & "', " & _
"'" & LblTotal & "','" & LblKodeKsr & "')"
Conn.Execute (SimpanGaji)----> point to this code
debug the error point to --> Conn.Execute (SimpanGaji)
Thank you..
|
|
|
|
|
Yes, it is so.
Wow. This little gem could very easily be causing your problem. Your INSERT statement is treating every single value as a string. Your database table (Gaji1) probably doesn't have every field defined as some variant of char .
The second LARGE problem with this code is that you're using string concatentation to build the SQL statement. This is a HUGE security risk which can end up detroying your entire database.
Google for ".NET Parameterized Queries" for explanations as to why I said that and how you can avoid it as well as makding your SQL related code much easier to understand and debug.
|
|
|
|
|
so i have to change the INSERT statement?this the data type of each filed in my table Gaji1,
NomorSlp data type = Text
Tanggal = Date/Time
Jam = Date/Time
Pendapatan = Number
Potongan = Number
GajiBersih = Number
NIP = Text
KodeKsr = Text
so it's could not be defined as string?should i change into variant, all of them?
Sorry to much asking, cause this is 1st time i made a program
modified 30-Jan-12 23:07pm.
|
|
|
|
|
Yes. You have three numeric fields in that table and your INSERT statement is treating them as strings. See the ' characters you're putting around those values??? Don't. And don't build the SQL statement the way you are now. Learn about parameterized queries and use them. Had you done so alreay, you may not have even seen this problem.
|
|
|
|
|
so should i change the statement? can You suggest me the right code..
the samples? please? cause i'm newbie..
thank You
|
|
|
|
|
Apparently you don't know anything about the SELECT statement format. For numeric fields, you don't put ' characters around the values.
|
|
|
|
|
Ya,you right specially bout the ' character,so could you give me the samples please? t
Thank you..
|
|
|
|
|
You're kidding, right? Ever hear of experimenting a little? It's the best way to teach yourself something. Make a little change, see what it does.
Dim query As String = "INSERT INTO table (numericField1, stringField1) VALUES (23, 'SomeString')"
BTW, the way you built your SQL statement is the worst possible method you could use to do it. Google for ".net parameterized query" and start reading. Seriously.
|
|
|
|
|
i know that statement.. i shouldn't put the ' character to numeric fields..
btw .net parameterized query thats for vb.net or vb?
|
|
|
|
|
VB.NET is what you're using, isn't it??
The concept is exactly the smae for any language.
|
|
|
|
|
No, i use VB..
Btw, can i ask again? How to delete record in DataGrid direct from DataGrid control when the program running,and it could effect to database, i use access database.. Thank you..
|
|
|
|
|
VB6?? If so, you'r using a dead language. One I haven't touched in over 10 years. So no, I can't tell you.
|
|
|
|
|
An idea:
Your program uses a COM component. The versions of that component differ on the computers, and between the versions the interface was broken.
But that's only an idea, due to the fact that you do not provide more information I cannot tell you more than this guess.
|
|
|
|
|
sorry, whats COM component?btw, i already write the code above..
thanks for your concern..
|
|
|
|
|
Hello,
For people out there who know and/or have Symantec, COMODO Antivirus, and some monitoring programs for school (for example: LanSchool or Netop Vision), when you go into task manager or other third-party utility or program you made of your own for process termination, if you select any of these programs, and try to terminate it, even with the process terminating utility running as admin , it gives you the message "Access denied!". I wonder how this is possible, I do have the Windows Service template for Visual Basic 2010 .NET, but I've been doing a lot of research on how this is possible, could there be a OnTerminate (Byval as ex, Byval ex) function or sub, if this is possible,I've heard of the O.S. Kernel drivers, could you make one? just wondering how these programs could do such a thing.....Any answers would be greatly appreciated
Regards,
Brandon T. H.
CodeProject Member
|
|
|
|
|
It's a genuine bad idea[^]. If you "really must", Google for "unkillable service" - StackOverflow has an archive on the topic.
Bastard Programmer from Hell
|
|
|
|
|
Not always true, COMODO has an exit function, user enters the password, prompts if the user really wanted to close the program, and it closes, automatically, then you could go to task manager and kill it's service from there without that "Access denied!" message. If COMODO was still running (it's program), then you would get that message.
|
|
|
|
|
I didn't say that it wasn't possible, only that it's a bad idea - and those keywords should be enough to find some interesting links. I'm not going to link to it directly, for the same reason that I don't like to key-loggers.
Bastard Programmer from Hell
|
|
|
|
|
Yeah there are some people out there who would LOVE, to integrate that into their pesky programs.
|
|
|
|
|
Brandon T. H. wrote: Not always true
Just because comodo does it doesn't make it a good idea.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Individuality is fine, as long as we do it together - F. Burns
|
|
|
|
|