Results 1 to 17 of 17

Thread: [RESOLVED] Working Searchable DB Now!

  1. #1

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Resolved [RESOLVED] Working Searchable DB Now!

    VBCode----------------------------
    Private Sub txtSearch_Change()
    If txtSearch.Text = vbNullString Then
    Set rs = db.OpenRecordset("EMPDATA", dbOpenTable)
    Else
    Set rs = db.OpenRecordset("SELECT * FROM EMPDATA WHERE ID LIKE'" & txtSearch.Text & "'" & "& '*'")
    End If

    End Sub

    everything else seems to work fine If it will help I can paste the rest of code ?
    Last edited by Quizton; Dec 23rd, 2005 at 04:05 AM.

  2. #2
    I'm about to be a PowerPoster! Hack's Avatar
    Join Date
    Aug 2001
    Location
    Searching for mendhak
    Posts
    58,333

    Re: Is something wrong with this search code?

    What is "EMPDATA"?

  3. #3

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: Is something wrong with this search code?

    it is my table name

  4. #4
    Super Moderator si_the_geek's Avatar
    Join Date
    Jul 2002
    Location
    Bristol, UK
    Posts
    41,974

    Re: Is something wrong with this search code?

    You have got the last part of the Like query wrong I'm afraid (I don't think you can join like that in SQL), you should really have one ' at each end of the string, eg:
    VB Code:
    1. Set rs = db.OpenRecordset("SELECT * FROM EMPDATA WHERE ID LIKE '" & txtSearch.Text & "*'")
    If that doesn't work, just use % as a wildcard character at the end instead of *

  5. #5
    I'm about to be a PowerPoster! Hack's Avatar
    Join Date
    Aug 2001
    Location
    Searching for mendhak
    Posts
    58,333

    Re: Is something wrong with this search code?

    Quote Originally Posted by Quizton
    it is my table name
    Quizton, I believe I already explained that you cant create a recordset using a table. You have to use a query to the table and collect a set, or subset of records within that table.

    Try si_the_geek's code...

  6. #6

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: Is something wrong with this search code?

    vbcode------
    Private Sub txtSearch_Change()
    If txtSearch.Text = vbNullString Then
    Set rs = db.OpenRecordset("EMPDATA", dbOpenTable)
    Else
    Set rs = db.OpenRecordset("SELECT * FROM EMPDATA WHERE ID LIKE '" & txtSearch.Text & "*'")
    End If

    End Sub


    Hmm...still no go ?
    Do I have to somehow update what i just did at the end?

  7. #7
    I'm about to be a PowerPoster! Hack's Avatar
    Join Date
    Aug 2001
    Location
    Searching for mendhak
    Posts
    58,333

    Re: Is something wrong with this search code?

    What happens when you run the code?

  8. #8

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: Is something wrong with this search code?

    Nothing happens, Should i change it to a search button instead of just entering it in text?

  9. #9
    I'm about to be a PowerPoster! Hack's Avatar
    Join Date
    Aug 2001
    Location
    Searching for mendhak
    Posts
    58,333

    Re: Is something wrong with this search code?

    The Change event will not fire unless something "changes" in the control. So, in order for the code to even execute, you would either have to type something, or paste something, into the textbox.

    Click events fire code on mouse clicks, so yes, I would suggest you move your code to an event of a control that could be executed by a user.

    Also, you still have (unless you are pasting old code) a table name in an openrecordset which will never work.

  10. #10

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: Is something wrong with this search code?

    I will change the command to the cmdSearch and see what happens.

    I am curious to know why the EMPDATA name for a table will not work though?
    should I change it , I created the table from scratch

  11. #11
    I'm about to be a PowerPoster! Hack's Avatar
    Join Date
    Aug 2001
    Location
    Searching for mendhak
    Posts
    58,333

    Re: Is something wrong with this search code?

    Quote Originally Posted by Quizton
    I will change the command to the cmdSearch and see what happens.

    I am curious to know why the EMPDATA name for a table will not work though?
    should I change it , I created the table from scratch
    You can't create a recordset using a table name!!!!

    I'm not sure how much more clear on this I can be.

    If you want data from your EMPDATA table, you have to write a query to get it.
    VB Code:
    1. Dim sSQL As String
    2. sSQL = "SELECT * from EMPDATA "
    3. Set rs = db.OpenRecordset(sSQL)
    Now, you have a recordset that can be used/manipulated.

  12. #12

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: Is something wrong with this search code?

    Great Ill throw that is there and see how it works out, and thanks for all your info

  13. #13

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: Is something wrong with this search code?

    Still no go here it what ive changed up now
    vb code---------
    Private Sub cmdSearch_Click()
    If txtSearch.Text = vbNullString Then
    sSQL = "SELECT * from EMPDATA "
    Set rs = db.OpenRecordset(sSQL)
    Else
    Set rs = db.OpenRecordset("SELECT * FROM EMPDATA WHERE ID LIKE '" & txtSearch.Text & "*'")
    End If

    End Sub

  14. #14

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: SearchCode close but not quite right?

    WoooHOOOO
    Figured it all out thanks again for all the help. Below is a complete searchable addable , editable , ect.... Amazing thing that I figured it out after coming home from a night at the bar!!
    thanks to you all you guys/gals are really a helpfull bunch!!

  15. #15

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: SearchCode close but not quite right?

    Fully Functional APP all debugged and ready to go
    Note: Employee Project but can do a whole lot more with this and a immagination!!
    I wish I seen this code a week ago lol VB 6.0
    VB Code:
    1. Option Explicit
    2. Private db As Database
    3. Private rs As DAO.Recordset
    4. Dim sSQL As String
    5. Private ws As Workspace
    6. Private max As Long
    7. Private i As Long
    8. Private errormsg
    9. Private dbadd As Boolean
    10. Private dbedit As Boolean
    11.  
    12.  
    13. Private Sub cmdend_Click()
    14. db.Close
    15. End
    16. End Sub
    17.  
    18. Private Sub Form_Load()
    19. sSQL = "SELECT * from EMPDATA "
    20. Set ws = DBEngine.Workspaces(0)
    21. Set db = ws.OpenDatabase(App.Path & "\EmployeeData.mdb")
    22. Set rs = db.OpenRecordset(sSQL)
    23. list
    24. End Sub
    25.  
    26. Private Function list()
    27.     If rs.RecordCount = 0 Then
    28.     errormsg = MsgBox("No Records Found", , "Error")
    29.     If Len(txtSearch.Text) > 0 Then
    30.         txtSearch.Text = Mid(txtSearch.Text, 1, Len(txtSearch.Text) - 1)
    31.     Else
    32.         Exit Function
    33.     End If
    34. End If
    35. rs.MoveLast
    36. rs.MoveFirst
    37. max = rs.RecordCount
    38. rs.MoveFirst
    39. listData.Clear
    40. For i = 1 To max
    41.     listData.AddItem rs("FirstName") & rs("LastName")
    42.     rs.MoveNext
    43.     Next i
    44. End Function
    45.  
    46. Private Sub listData_Click()
    47. Set rs = db.OpenRecordset("Select * from EMPDATA where FirstName &  LastName = '" & Trim(listData.list(listData.ListIndex)) & "'")
    48. rs.MoveFirst
    49. txtFirstName.Text = rs("FirstName")
    50. txtLastName.Text = rs("LastName")
    51. txtSocialSecurity.Text = rs("SocialSecurity")
    52. txtPhone.Text = rs("Phone")
    53. txtStreet.Text = rs("Street")
    54. txtCity.Text = rs("City")
    55. txtState.Text = rs("State")
    56. txtZip.Text = rs("Zip")
    57. txtID.Text = rs("ID")
    58. txtRate.Text = rs("Rate")
    59. txtGender.Text = rs("Gender")
    60. txtDateofBirth.Text = rs("DateofBirth")
    61. txtEmployed.Text = rs("Employed")
    62. cmdEdit.Enabled = True
    63. cmdDelete.Enabled = True
    64. End Sub
    65.  
    66. Private Sub cmdDelete_Click()
    67. errormsg = MsgBox("Are You Sure You Want To Delete This Record", vbYesNo, "Delete Record")
    68. If errormsg = vbYes Then
    69. rs.Delete
    70. Set rs = db.OpenRecordset("EMPDATA", dbOpenTable)
    71. list
    72. txtFirstName.Text = vbNullString
    73. txtFirstName.Enabled = False
    74. txtLastName.Text = vbNullString
    75. txtLastName.Enabled = False
    76. txtSocialSecurity.Text = vbNullString
    77. txtSocialSecurity.Text = False
    78. txtPhone.Text = vbNullString
    79. txtPhone.Enabled = False
    80. txtStreet.Text = vbNullString
    81. txtStreet.Text = False
    82. txtCity.Text = vbNullString
    83. txtCity.Text = False
    84. txtState.Text = vbNullString
    85. txtState.Text = False
    86. txtZip.Text = vbNullString
    87. txtZip.Text = False
    88. txtID.Text = vbNullString
    89. txtID.Text = False
    90. txtRate.Text = vbNullString
    91. txtRate.Text = False
    92. txtGender.Text = vbNullString
    93. txtGender.Text = False
    94. txtDateofBirth.Text = vbNullString
    95. txtDateofBirth.Text = False
    96. txtEmployed.Text = vbNullString
    97. txtEmployed.Text = False
    98. txtSearch.Text = vbNullString
    99. cmdSave.Enabled = False
    100. cmdCancel.Enabled = False
    101. cmdadd.Enabled = True
    102. Else
    103. Exit Sub
    104. End If
    105. End Sub
    106.  
    107.  
    108. Private Sub cmdAdd_Click()
    109. txtFirstName.Text = vbNullString
    110. txtLastName.Text = vbNullString
    111. txtSocialSecurity.Text = vbNullString
    112. txtPhone.Text = vbNullString
    113. txtStreet.Text = vbNullString
    114. txtCity.Text = vbNullString
    115. txtState.Text = vbNullString
    116. txtZip.Text = vbNullString
    117. txtID.Text = vbNullString
    118. txtRate.Text = vbNullString
    119. txtGender.Text = vbNullString
    120. txtDateofBirth.Text = vbNullString
    121. txtEmployed.Text = vbNullString
    122. txtFirstName.Enabled = True
    123. txtLastName.Enabled = True
    124. txtSocialSecurity.Enabled = True
    125. txtPhone.Enabled = True
    126. txtStreet.Enabled = True
    127. txtCity.Enabled = True
    128. txtState.Enabled = True
    129. txtZip.Enabled = True
    130. txtID.Enabled = True
    131. txtRate.Enabled = True
    132. txtGender.Enabled = True
    133. txtDateofBirth.Enabled = True
    134. txtEmployed.Enabled = True
    135. cmdadd.Enabled = False
    136. cmdDelete.Enabled = False
    137. cmdEdit.Enabled = False
    138. cmdSave.Enabled = True
    139. cmdCancel.Enabled = True
    140. dbadd = True
    141.  
    142. End Sub
    143.  
    144. Private Sub cmdsave_Click()
    145. If dbadd = True Then
    146.     Call add
    147. ElseIf dbedit = True Then
    148.     Call edit
    149. End If
    150. End Sub
    151.  
    152. Public Function add()
    153. If txtFirstName.Text = vbNullString Or _
    154. txtLastName.Text = vbNullString Or _
    155. txtSocialSecurity.Text = vbNullString Or _
    156. txtPhone.Text = vbNullString Or _
    157. txtStreet.Text = vbNullString Or _
    158. txtCity.Text = vbNullString Or _
    159. txtState.Text = vbNullString Or _
    160. txtZip.Text = vbNullString Or _
    161. txtID.Text = vbNullString Or _
    162. txtRate.Text = vbNullString Or _
    163. txtGender.Text = vbNullString Or _
    164. txtDateofBirth.Text = vbNullString Or _
    165. txtEmployed.Text = vbNullString Then
    166.     errormsg = MsgBox("All Fields Must Contain Data", vbCritical, "Error")
    167.     Exit Function
    168. End If
    169. rs.AddNew
    170. rs("FirstName") = txtFirstName.Text
    171. rs("LastName") = txtLastName.Text
    172. rs("SocialSecurity") = txtSocialSecurity.Text
    173. rs("Phone") = txtPhone.Text
    174. rs("Street") = txtStreet.Text
    175. rs("City") = txtCity.Text
    176. rs("State") = txtState.Text
    177. rs("Zip") = txtZip.Text
    178. rs("ID") = txtID.Text
    179. rs("Rate") = txtRate.Text
    180. rs("Gender") = txtGender.Text
    181. rs("DateofBirth") = txtGender.Text
    182. rs("Employed") = txtEmployed.Text
    183. rs.Update
    184. txtFirstName.Text = vbNullString
    185. txtFirstName.Enabled = False
    186. txtLastName.Text = vbNullString
    187. txtLastName.Enabled = False
    188. txtSocialSecurity.Text = vbNullString
    189. txtSocialSecurity.Enabled = False
    190. txtPhone.Text = vbNullString
    191. txtPhone.Enabled = False
    192. txtStreet.Text = vbNullString
    193. txtStreet.Enabled = False
    194. txtCity.Text = vbNullString
    195. txtCity.Enabled = False
    196. txtState.Text = vbNullString
    197. txtState.Enabled = False
    198. txtZip.Text = vbNullString
    199. txtZip.Enabled = False
    200. txtID.Text = vbNullString
    201. txtID.Enabled = False
    202. txtRate.Text = vbNullString
    203. txtRate.Enabled = False
    204. txtGender.Text = vbNullString
    205. txtGender.Enabled = False
    206. txtDateofBirth.Text = vbNullString
    207. txtDateofBirth.Enabled = False
    208. txtEmployed.Text = vbNullString
    209. txtEmployed.Enabled = False
    210. txtSearch.Text = vbNullString
    211. cmdSave.Enabled = False
    212. cmdCancel.Enabled = False
    213. cmdadd.Enabled = True
    214. list
    215.  
    216. End Function
    217.  
    218. Private Sub cmdEdit_Click()
    219. txtFirstName.Enabled = True
    220. txtLastName.Enabled = True
    221. txtSocialSecurity.Enabled = True
    222. txtPhone.Enabled = True
    223. txtStreet.Enabled = True
    224. txtCity.Enabled = True
    225. txtState.Enabled = True
    226. txtZip.Enabled = True
    227. txtID.Enabled = True
    228. txtRate.Enabled = True
    229. txtGender.Enabled = True
    230. txtDateofBirth.Enabled = True
    231. txtEmployed.Enabled = True
    232. cmdadd.Enabled = False
    233. cmdDelete.Enabled = False
    234. cmdEdit.Enabled = False
    235. cmdSave.Enabled = True
    236. cmdCancel.Enabled = True
    237. dbedit = True
    238.  
    239. End Sub
    240.  
    241. Public Function edit()
    242. If txtFirstName.Text = vbNullString Or _
    243. txtLastName.Text = vbNullString Or _
    244. txtSocialSecurity.Text = vbNullString Or _
    245. txtPhone.Text = vbNullString Or _
    246. txtStreet.Text = vbNullString Or _
    247. txtCity.Text = vbNullString Or _
    248. txtState.Text = vbNullString Or _
    249. txtZip.Text = vbNullString Or _
    250. txtID.Text = vbNullString Or _
    251. txtRate.Text = vbNullString Or _
    252. txtGender.Text = vbNullString Or _
    253. txtDateofBirth.Text = vbNullString Or _
    254. txtEmployed.Text = vbNullString Then
    255.     errormsg = MsgBox("All Fields Must Contain Data", vbCritical, "Error")
    256.     Exit Function
    257. End If
    258. rs.edit
    259. rs("FirstName") = txtFirstName.Text
    260. rs("LastName") = txtLastName.Text
    261. rs("SocialSecurity") = txtSocialSecurity.Text
    262. rs("Phone") = txtPhone.Text
    263. rs("Street") = txtStreet.Text
    264. rs("City") = txtCity.Text
    265. rs("State") = txtState.Text
    266. rs("Zip") = txtZip.Text
    267. rs("ID") = txtID.Text
    268. rs("Rate") = txtRate.Text
    269. rs("Gender") = txtGender.Text
    270. rs("DateofBirth") = txtDateofBirth.Text
    271. rs("Employed") = txtEmployed.Text
    272. rs.Update
    273. txtFirstName.Text = vbNullString
    274. txtFirstName.Enabled = False
    275. txtLastName.Text = vbNullString
    276. txtLastName.Enabled = False
    277. txtSocialSecurity.Text = vbNullString
    278. txtSocialSecurity.Enabled = False
    279. txtPhone.Text = vbNullString
    280. txtPhone.Enabled = False
    281. txtStreet.Enabled = False
    282. txtCity.Text = vbNullString
    283. txtCity.Enabled = False
    284. txtState.Text = vbNullString
    285. txtState.Enabled = False
    286. txtZip.Text = vbNullString
    287. txtZip.Enabled = False
    288. txtID.Text = vbNullString
    289. txtID.Enabled = False
    290. txtRate.Text = vbNullString
    291. txtRate.Enabled = False
    292. txtGender.Text = vbNullString
    293. txtGender.Enabled = False
    294. txtDateofBirth.Text = vbNullString
    295. txtDateofBirth.Enabled = False
    296. txtEmployed.Text = vbNullString
    297. txtEmployed.Enabled = False
    298. txtSearch.Text = vbNullString
    299. cmdSave.Enabled = False
    300. cmdCancel.Enabled = False
    301. cmdadd.Enabled = True
    302. cmdEnd.Enabled = True
    303. Set rs = db.OpenRecordset("EMPDATA", dbOpenTable)
    304. list
    305. End Function
    306.  
    307. Private Sub cmdcancel_Click()
    308. txtFirstName.Text = vbNullString
    309. txtFirstName.Enabled = False
    310. txtLastName.Text = vbNullString
    311. txtLastName.Enabled = False
    312. txtSocialSecurity.Text = vbNullString
    313. txtSocialSecurity.Enabled = False
    314. txtPhone.Text = vbNullString
    315. txtPhone.Enabled = False
    316. txtStreet.Enabled = False
    317. txtCity.Text = vbNullString
    318. txtCity.Enabled = False
    319. txtState.Text = vbNullString
    320. txtState.Enabled = False
    321. txtZip.Text = vbNullString
    322. txtZip.Enabled = False
    323. txtID.Text = vbNullString
    324. txtID.Enabled = False
    325. txtRate.Text = vbNullString
    326. txtRate.Enabled = False
    327. txtGender.Text = vbNullString
    328. txtGender.Enabled = False
    329. txtDateofBirth.Text = vbNullString
    330. txtDateofBirth.Enabled = False
    331. txtEmployed.Text = vbNullString
    332. txtEmployed.Enabled = False
    333. txtSearch.Text = vbNullString
    334. cmdSave.Enabled = False
    335. cmdCancel.Enabled = False
    336. cmdadd.Enabled = True
    337. cmdEnd.Enabled = True
    338. Set rs = db.OpenRecordset("EMPDATA", dbOpenTable)
    339. list
    340. End Sub
    341.  
    342. Private Sub cmdSearch_Click()
    343. If txtSearch.Text = vbNullString Then
    344. sSQL = "SELECT * from EMPDATA "
    345. Set rs = db.OpenRecordset(sSQL)
    346. Else
    347.     Set rs = db.OpenRecordset("SELECT * FROM EMPDATA WHERE ID LIKE '" & txtSearch.Text & "*'")
    348. End If
    349. list
    350. End Sub
    Last edited by si_the_geek; Dec 23rd, 2005 at 09:16 AM. Reason: added VBCode tags

  16. #16
    Super Moderator si_the_geek's Avatar
    Join Date
    Jul 2002
    Location
    Bristol, UK
    Posts
    41,974

    Re: [RESOLVED] Working Searchable DB Now!

    I'm glad you worked it out It's surprising how a night drinking can help occasionally (as it usually does the opposite!!).

    One thing I notice is that you have a few bits of repeated code, which could be put into Subs instead. That way you if things change you don't need to change code in several places, and the other code is much easier to read (as there is far less of it!).

    For example, in cmdAdd/cmdDelete/etc you have code like this:
    VB Code:
    1. txtFirstName.Text = vbNullString
    2. ...
    3. ...
    4. txtEmployed.Text = vbNullString
    and like this:
    VB Code:
    1. txtFirstName.Enabled = True  '(or false, but all the same)
    2. ...
    3. ...
    4. txtEmployed.Enabled = True

    These can both be replaced (everywhere in your code that uses them) by a call to a subs like these:
    VB Code:
    1. Private Sub ClearTextBoxes
    2. 'Clear the text in all data text boxes
    3.  
    4.   txtFirstName.Text = vbNullString
    5.   txtLastName.Text = vbNullString
    6.   txtSocialSecurity.Text = vbNullString
    7.   txtPhone.Text = vbNullString
    8.   txtStreet.Text = vbNullString
    9.   txtCity.Text = vbNullString
    10.   txtState.Text = vbNullString
    11.   txtZip.Text = vbNullString
    12.   txtID.Text = vbNullString
    13.   txtRate.Text = vbNullString
    14.   txtGender.Text = vbNullString
    15.   txtDateofBirth.Text = vbNullString
    16.   txtEmployed.Text = vbNullString
    17. End Sub
    18.  
    19. Private Sub EnableTextBoxes (booEnable as Boolean)
    20. 'Enable or disable all data text boxes (pass True to enable all, or False to disable all)
    21.  
    22.   txtFirstName.Enabled = booEnable
    23.   txtLastName.Enabled = booEnable
    24.   txtSocialSecurity.Enabled = booEnable
    25.   txtPhone.Enabled = booEnable
    26.   txtStreet.Enabled = booEnable
    27.   txtCity.Enabled = booEnable
    28.   txtState.Enabled = booEnable
    29.   txtZip.Enabled = booEnable
    30.   txtID.Enabled = booEnable
    31.   txtRate.Enabled = booEnable
    32.   txtGender.Enabled = booEnable
    33.   txtDateofBirth.Enabled = booEnable
    34.   txtEmployed.Enabled = booEnable
    35. End Sub
    (just paste this before cmdend_Click)

    These can be used in cmdAdd and cmdDelete like this:
    VB Code:
    1. Private Sub cmdDelete_Click()
    2. errormsg = MsgBox("Are You Sure You Want To Delete This Record", vbYesNo, "Delete Record")
    3. If errormsg = vbYes Then
    4.   rs.Delete
    5.   Set rs = db.OpenRecordset("EMPDATA", dbOpenTable)
    6.   list
    7.  
    8. [B]  Call ClearTextBoxes
    9.   Call EnableTextBoxes(False)[/B]
    10.  
    11.   txtSearch.Text = vbNullString
    12.   cmdSave.Enabled = False
    13.   cmdCancel.Enabled = False
    14.   cmdadd.Enabled = True
    15. Else
    16.   Exit Sub
    17. End If
    18. End Sub
    19.  
    20.  
    21. Private Sub cmdAdd_Click()
    22.  
    23. [B]  Call ClearTextBoxes
    24.   Call EnableTextBoxes(True)[/B]
    25.  
    26.   cmdadd.Enabled = False
    27.   cmdDelete.Enabled = False
    28.   cmdEdit.Enabled = False
    29.   cmdSave.Enabled = True
    30.   cmdCancel.Enabled = True
    31.   dbadd = True
    32.  
    33. End Sub
    ..you can also call them from other places in your code that do the same work.

  17. #17

    Thread Starter
    Addicted Member Quizton's Avatar
    Join Date
    Dec 2005
    Location
    VB Forums
    Posts
    209

    Re: [RESOLVED] Working Searchable DB Now!

    Nice, thanks si , I like that way better =o)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width