Keresés

Részletes keresés

bsiscript Creative Commons License 2008.10.14 0 0 18
Üdv Mindenkinek!

Készül egy fejlesztői nyelv WEBOLDAL készítéshez.
BSI(=Basic Script Interpreter). Hasonló módon működik mint a php csak a nyelv basic alapú. Sok minden készen van már.

Akinek van ötlete vagy észrevétele a nyelvel kapcsolatban írjon nyugodtan, mindent ötletet szívesen veszünk. (Lehet pl. egy utasítás a nyelvben)
itt elérhető:
http://www.bsiscript.co.cc

bsi

Üdv!
Yellopages Creative Commons License 2008.09.15 0 0 17

Sziasztok!

A segitsegetekre lenne szuksegem:

Visual basic express-t hasznalok, SQL adatbazissal. Az a gondom, hogy az uj rekordok nem kerulnek be az sql fileba. Csinaltam 1 datagridview-t, ahol latom, hogy minden uj sor belekerul a tablaba, de a file fizikailag nem modosul. Tehat berakok 1,2,5 uj sort, latom, hogy ezek ott vannak, tudom modositani, meg minden, de ha belenezek az SQL fileba, ott tovabbra sincsenek bent ezek a recordok. ha kilepek es ujra elinditom a progit, akkor mintha semmit sem csinaltam volna, megint ures az egesz. mit rontok el, mit kell updatelnem? elakadtam, segitsetek!

koszi

 

Epikurosz Creative Commons License 2008.08.19 0 0 16
Annyit javítottam, hogy:
For Each objField In Selection.Range.FormFields

Különben, gyanítottam, hogy a keretes elrendezés okozhat galibát, de egyből nem jöttem rá, mert kölcsönkód. :-)
Előzmény: halinorbi (14)
Epikurosz Creative Commons License 2008.08.19 0 0 15
Szerintem is így jó lesz, mert a manus eredetiben keretbe pakolta a jel.négyzeteket, én meg csak táblázatba.
Előzmény: halinorbi (14)
halinorbi Creative Commons License 2008.08.19 0 0 14
na, kihagytam a selection-t meg a frames(1)-et és így lefut. Viszont nem értek a word VBA-jához, úgyhogy nemtom hogy ezzel nem lép-e fel valami hibalahetőség.


Sub ExclusiveCheckboxes()
Dim objField As FormField
For Each objField In Range.FormFields
objField.CheckBox.Value = False

Next objField
FormFields(1).CheckBox.Value = True
End Sub

Előzmény: Epikurosz (12)
Epikurosz Creative Commons License 2008.08.18 0 0 13
Amúgy, Word űrlappal kvízt csinálni, ez már felér a mazochizmussal.

150 kérdésem van, egy-egy jelölőnégyzettel. Mindegyikre rá kellett kattintani, és a tulajdonságok lapon nevet adni (könyvjelző), emellett az értékeléskor minden jó választ tartalmazó jelölőnégyzetet fel kellett venni a case-k közé.

Soha többet nem csinálok ilyent. Vannak már kvíz-generáló programok, majd azokkal dolgozom.
Epikurosz Creative Commons License 2008.08.18 0 0 12
A progi nem akad ki, mert lefut, és kiírja az eredményt.

A hiba a számolás előtt, a négyzetek beikszelésekor lép fel.

A gond azzal a makróval lehet, szerintem, amely a jelölőnégyzetre való rálépéskor aktiválódik.

Maga a függvény nagyon rövid:

Sub ExclusiveCheckboxes()
Dim objField As FormField
For Each objField In Selection.Frames(1).Range.FormFields
objField.CheckBox.Value = False
'DEBUG (Jimmy the Hand javaslatára)
'Debug.Print objField.Name & " - " & Now()
Next objField
Selection.FormFields(1).CheckBox.Value = True
End Sub

de nem jövök rá, hogy mi a hiba.
Előzmény: halinorbi (11)
halinorbi Creative Commons License 2008.08.18 0 0 11
törésponttal, vagy a kódba tűzdelt msgbox-okkal meg tudod nézni hol akad ki a progi...

Előzmény: Epikurosz (4)
Törölt nick Creative Commons License 2008.08.18 0 0 10
Akkor a ciklus nem fut le.
Tegyél egy töréspontot az említett Sub-ba, a cikluson kívülre, és nézd meg, hol akad ki.
Előzmény: Epikurosz (9)
Epikurosz Creative Commons License 2008.08.18 0 0 9
Nos, az Immediate Window-ba nekem nem ír ki semmit.
Előzmény: Törölt nick (5)
Epikurosz Creative Commons License 2008.08.18 0 0 8
Ja, és nem Magnum, hanem "Magna cum laudae" :-)
Epikurosz Creative Commons License 2008.08.18 0 0 7
Ebben (is?) igazad van:
If gintTotal < 50 Then
strComments = "Elégtelen! / Non-satisfactory."
ElseIf gintTotal > 49 And gintTotal < 61 Then
strComments = "Megfelelt. / Acceptable."
ElseIf gintTotal > 60 And gintTotal < 71 Then
strComments = "Jó! / Good!"
ElseIf gintTotal > 70 And gintTotal < 81 Then
strComments = "Nagyon jó! / Very good!"
ElseIf gintTotal > 80 Then
strComments = "Magnum cum laudae!!!"
End If
Előzmény: Törölt nick (5)
Epikurosz Creative Commons License 2008.08.18 0 0 6
Az igazság az, hogy egy-egy kérdéshez tartozó jelölőnégyzeteket nem keretbe foglaltam, hanem táblázatom van, és minden jelölőnégyzet, ill. a hozzá tartozó válaszok külön cellában csücsül.
Előzmény: Törölt nick (5)
Törölt nick Creative Commons License 2008.08.18 0 0 5
Gyanítom, beraktál egy nem checkbox elemet is a keretbe, és az lesz a hiba oka.

Egy kis segítség a Debugoláshoz:

Módosítsd a kódot így (új rész kiemelve):

Sub ExclusiveCheckboxes()

'declare an object as the form field
Dim objField As FormField

'for each checkbox (form field) in this current fame set
'(or range of form fields), set all the values to false
'and loop through to make sure they are all set to false (unchecked)
For Each objField In Selection.Frames(1).Range.FormFields
Debug.Print objField.Name & " - " & Now()
objField.CheckBox.Value = False
Next objField

'now set the currently selected checkbox value to true
Selection.FormFields(1).CheckBox.Value = True

End Sub

Ez semmi mást nem tesz, csak kiírja az Immediate Window-ba a ciklusban átnézett objektumok nevét, meg az időt.
Ezután próbáld ki az űrlapot, és kattints egy checkbox-ra. Amikor a hibaüzenetet látod, várj egy pár másodpercig, mielőtt az OK-ra kattintatnál.
Ezután Alt+F11-el menj át a VB editor ablakba, és a View menüből válaszd ki az Immediate Window-t. Abban elvileg fel vannak sorolva az objektumnevek és időpont párosok. Elképzelésem szerint a hibát okozó objektum egyértelműen felismerhető lesz abból, hogy közte és a következő objektum között lényegesen hosszabb idő telt el, mint a többi esetben.

Egyébként az értékelő algoritmusod hibás, mert 50, 60, 70 és 80 pontokra nem ad értékelést.
Előzmény: Epikurosz (4)
Epikurosz Creative Commons License 2008.08.18 0 0 4
Így néz ki a VB kód:
--------------------------
Option Explicit
Public gintTotal As Integer
Public gintTestTaken As Integer
Private Sub Eredmény_Click()

'checks to see if GLOBAL variable "flag"
'has been set to see if user has already
'entered a final score, so the score can't be changed
'otherwise, if var is not set, then proceeds with calc

If gintTestTaken = 1 Then
MsgBox "Sorry, you have already calculated your score!"
Else
'calls separate routine to add up totals
'you can position your cursor inside name
'and hit Shift/F2 to jump to that procedure
'to read that code to see what happens next

Call CalcScores

'declares variables for this procedure
Dim strComments As String
Dim bkRange As Range

'quickly calls another routine to unlock form
'note that you can use the "Call" command or not
'it doesn't matter, except for how you would enter
'variables, if we were passing them. When using Call,
'any passed vars need to go in parens. That's info only
'as we're not doing there here!
ToggleFormLock

'sets bookmarked location to total score
ActiveDocument.Bookmarks("TotalScore").Range.Text = gintTotal

'relocks form
ToggleFormLock

'sets the GLOBAL variable flag to 1
'to show the score cannot be changed!
gintTestTaken = 1

'create message for scores
'this is optional and you'll need to change the
'settings for the total score. Since I only have three
'questions. If you have more, adjust these numbers or
'you can comment this code out by putting an apostrophe
'in front of each line, or just rip it out!
If gintTotal < 50 Then
strComments = "Elégtelen! / Non-satisfactory."
ElseIf gintTotal > 50 And gintTotal < 60 Then
strComments = "Megfelelt. / Acceptable."
ElseIf gintTotal > 60 And gintTotal < 70 Then
strComments = "Jó! / Good!"
ElseIf gintTotal > 70 And gintTotal < 80 Then
strComments = "Nagyon jó! / Very good!"
ElseIf gintTotal > 80 Then
strComments = "Magnum cum laudae!!!"
End If
'concatenate your message with the results
'note! If you rip out the message above, also change this code!
MsgBox "Az eredmény / Your Total Score: " & gintTotal & ", vagyis /i.e.: " & strComments
End If
End Sub

Private Sub Document_New()
'sets both global variables
'...for total and score fields...
'to zero so they can run at least once
gintTotal = 0
gintTestTaken = 0
End Sub

Sub ExclusiveCheckboxes()
'declare an object as the form field
Dim objField As FormField
'for each checkbox (form field) in this current frame set
'(or range of form fields), set all the values to false
'and loop through to make sure they are all set to false (unchecked)
For Each objField In Selection.Frames(1).Range.FormFields
objField.CheckBox.Value = False
Next objField
'now set the currently selected checkbox value to true
Selection.FormFields(1).CheckBox.Value = True
End Sub

Sub CalcScores()
Dim objAllChecks As FormField
Dim strName As String
'this loops through all the document fields, and if they
'are checkboxes, it captures the bookmark name of the
'checkbox and puts it into a string to check it to see if
'it is a correct answer
For Each objAllChecks In ActiveDocument.FormFields
objAllChecks.Select
If objAllChecks.Type = wdFieldFormCheckBox Then
strName = objAllChecks.Name
'DEBUG
'az alábbi üzenettel
'csak annyit lehet ellenőrizni, hogy
'a helyes jelölőnégyzeten vagyok-e éppen
' MsgBox strName
'you will need to modify the code below to one CASE for every
'CORRECT answer. If the correct answer is checked to true,
'then the GLOBAL variable holding the score will have 1 added
'to it.
Select Case strName
Case "Q1_c"
If Selection.FormFields(strName).CheckBox.Value = True Then
gintTotal = gintTotal + 1
End If
Case "Q2_b"
If Selection.FormFields(strName).CheckBox.Value = True Then
gintTotal = gintTotal + 1
End If
Case "Q3_c"
If Selection.FormFields(strName).CheckBox.Value = True Then
gintTotal = gintTotal + 1
End If
Case "Q4_b"
.....................
Case "Q151_c"
If Selection.FormFields(strName).CheckBox.Value = True Then
gintTotal = gintTotal + 1
End If
'Case Else
'DEBUG
'this is also a debugging tool. When you are testing
'your code, you should make sure the message box below
'is uncommented to catch any fields that contain typos.
'if they are not found, it means they don't match the
'actual field name. A typo could cause an incorrect score!
'You should only see this for incorrect checkboxes. When
'run in conjunction with the name message above, you can
'see the field name and see if it's found or not
'if a CORRECT answer is not found, you messed up!
MsgBox "This incorrect answer was not found"
End Select
End If
Next objAllChecks
End Sub

Sub ToggleFormLock()
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
ActiveDocument.Unprotect
'if a password is used, add the line below after a space above
'Password:="myPassword"
Else
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
'if a password is used, add a comma after
'the last line and include the line below
'Password:="myPassword"
End If
End Sub
------------------------------------

A kódot eredetileg a neten találtam, és adaptáltam a projektemhez.
Előzmény: Epikurosz (3)
Epikurosz Creative Commons License 2008.08.18 0 0 3
Helló!
Lenne egy Visual Basic problémám, hátha tudtok segíteni.

Adott egy Word 2007-ben készített űrlap, azaz tesztlap (quiz), több kérdéssel, a kérdésekre 2-3 lehetőség közül választhat a felhasználó. A válaszok mellett van 2-3 jelölőnégyzet, amelyek közül egyet vagy akár hátmat be kell jelölni. (Minden kérdésnél van legalább 1 jó válasz. Van olyan kérdés, amelynél a 3-ból 2 válasz is jó, sőt akár mind a 3 jó lehet.)

Minden jelölőnégyzethez egyedi név (könyvjelző) van hozzárendelve, van egy makró, amely belépésre aktiválódik, és a teszt végén a felhasználó megnyom egy gombot, a gomb (vezérlőelem) mögött lévő VB függvény kiszámítja az elért eredményt.

A probléma az, hogy amikor a felhasználó rákattint egy jelölőnégyzetre, felugrik egy hibaüzenet: "A gyűjtemény kívánt tagja nem létezik." (OK, súgó). ezt leokézva, a négyzetet be lehet ikszelni, és látszólag semmi gond, sőt a végén az eredmény kiszámítása is megtörténik, de azért zavaró, hogy minden jelölőnégyzetnél felugrik ez a hibaüzenet.

VB hiba Wordben
baghi Creative Commons License 2008.07.15 0 0 2
Üdv.
Van egy kis gondom VB 2008-ban:

Készítek egy cégnek egy adatbázis progit. Ez lényegében egy eladás tervező program. A cég termékeket ad el különböző vásárlóknak.

Kellene csinálnom egy reportot a forgalomra, amiben a vásárlók és a termékek lennének benne, tehát az forgalom, hogy ki miből mennyit vett.
A probléma a következő:
-szűrést kell csinálni - pl. ha kiválasztok egy vevőt akkor csak ahhoz a vevőhöz tartozó vásárlásokat írja ki
Csak az a gond, hogy a VB report ilyet nem tud.

Én úgy gondoltam, hogy készítek egy lekérdezést erre a forgalomra, és a ComboBox-al adnám meg neki a kért paramétert, hogy mi szerint szortírozzon.

Remélem megértettétek a zagyválásomat.
A segítséget előre is köszönöm.
Sumo Creative Commons License 2001.09.11 0 0 1
nos. akkor ugylatszik kifelejtettem a lenyeget:)) az MDI Form scrollbarjahoz nem lehet hozzaferni kodbol. system message szinten elvileg hozza lehet, csakhogy. hiaba van beallitva a ScrollBars property True-ra, es hiaba latom a scrollbarokat a kepernyon, a GetLastError a 1447es hibat adja vissza, amikor a scrollbar positionjat allitom. ami szabad forditasban: "this form has no scrollbars"

es ennyi.

Előzmény: DnP (0)
DnP Creative Commons License 2001.09.11 0 0 0
csa.
a controllnak van getfocus metodusa... ekkor scrollozhatnal egyet.. csak 5let
Előzmény: Sumo (-)
Sumo Creative Commons License 2001.09.11 0 0 topiknyitó
udv

tudom, most utni fogtok, dehat sajnos nem en valasztottam. a helyzet a kovetkezo. kolcson lettem adva egy cegnek, akik visualbasicben fejlesztenek. es van egy eleg erdekes problemajuk, amire en sem talalom a megoldast.

a problema a kovetkezo (ketto is van, de osszefuggenek). van egy MDI form, azon belul nehany child form. ezek a childek marha nagyon, szelteben-hosszaban kilognak az MDIbol. az egyes szamu gond:
- az egyik child form tele van editboxokkal, amik messzire nyulnak oldalra es lefele is, tul a kepernyon. a juzer valoszinuleg tabokkal fog kozlekedni koztuk, mert a kitoltesnel igy a logikus. viszont. ha olyan controlra tabol ra (adja a fokuszt), ami kivul van mar az MDI lathato teruleten, akkor a form nem scrolloz oda. tehat hiaba aktiv az a control, nem fog latszani.
a masik gond:
- ha a juzer fogja magat, es az egyik child formot elhuzza a fenebe, le vagy oldalra, utana dolgozik rajta, vegul bezarja ezt a formot, egy masik child form lesz ugye az aktiv, viszont az, hogy aktivva valik, nem okozza azt, hogy az MDI odascrolloz. tehat az aktiv form nem lesz lathato.

nos. ezzel kapcsolatban esetleg tudna valaki segiteni, annak nagyon orulnek. valamerre elindultam, ami lehet, hogy nem az igazi megoldas, viszont ott akadok el, hogy nem tudom, hogyan lehetne megtudni az eppen lathato MDI terulet bal felso sarkanak koordinatajat, akar az MDI sajat client teruletenek bal felsojehez kepest relativan is.

egy morickaabra:


+-------------------------------+
|MDI form |
+-------------------------------+
|MDI client area |
| |
| |
| |
| |
| |
| O------------------+ |
| |lathato terulet | |
| | | |
| | | |
| | | |
| +------------------+ |
| |
| |
+-------------------------------+

nos, az O-val jelolt hely koordinatai kellenenek.

jojjon a nullazas, aztan remelem tud valaki segiteni.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!